Barcode reader and docking station for facilitating presentation mode

ABSTRACT

A barcode reader system includes a barcode reader, a docking station, and a magnet. The barcode reader includes a housing and a first mating structure connected to the housing. The docking station includes a second mating structure to mate with the first mating structure. The second mating structure and the first mating structure are capable of forming a coupling between the barcode reader and the docking station. The magnet produces magnetic forces that strengthen the coupling between the barcode reader and the docking station. The docking station may include the magnet. The barcode reader may include a magnetic field detector and may enter a presentation mode in response to the magnetic field detector detecting a magnetic field.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/218,235 (the '235 application) filed on Dec. 12, 2018. The '235application is a continuation-in-part of U.S. patent application Ser.No. 14/814,396 (the '396 application), filed on Jul. 30, 2015, andissued as U.S. Pat. No. 10,387,701 on Aug. 20, 2019. The '396application is a continuation-in-part of: i) U.S. patent applicationSer. No. 14/741,213, filed on Jun. 16, 2015, and issued as U.S. Pat. No.9,679,177 on Jun. 13, 2017; ii) U.S. patent application Ser. No.14/717,112, filed on May 20, 2015, and issued as U.S. Pat. No.10,133,902 on Nov. 20, 2018; and iii) U.S. patent application Ser. No.14/641,305, filed Mar. 7, 2015, and issued as U.S. Pat. No. 9,355,291 onMay 31, 2016. The '396 application claims priority to U.S. ProvisionalPatent Application No. 62/031,226 filed on Jul. 31, 2014. Each of theforegoing patent applications is hereby incorporated by reference in itsentirety.

BACKGROUND

A barcode is an optical machine-readable representation of information.Devices for identifying or extracting information from barcodes areoften referred to as barcode readers or barcode reading devices.Image-based barcode readers operate by capturing and decoding images ofbarcodes. In typical operation, one or more light sources are activatedto illuminate a region of space that includes a barcode. Light isreflected from the barcode toward the barcode reader. One or more lenseswithin the barcode reader focus an image of the barcode onto an imagesensor, which is a two-dimensional array of photosensors (i.e.,detectors that are sensitive to electromagnetic radiation). Thephotosensors are read electronically to provide a two-dimensional arrayof image data corresponding to the barcode. A decoder then processes theimage data and extracts the information contained in the barcode.

Some barcode readers are capable of operating in either a “hand-heldmode” or a “presentation mode.” When a barcode reader is operating inhand-held mode, a user holds the reader in his/her hand, manuallypositions the reader so that a barcode is located within the reader'sfield of view, and activates a trigger located on the reader. Thebarcode is read in response to activation of the trigger. In contrast,when a barcode reader is operating in presentation mode, an item bearinga barcode is presented to the reader rather than the reader beingpresented to the barcode. In presentation mode, barcodes are readautomatically when they are detected within the reader's field of view.When a reader is operating in presentation mode, it is typicallydesirable for the reader to be held in a fixed position without the userhaving to hold the reader in place. A stand may be utilized for thispurpose.

SUMMARY

In accordance with one aspect of the present disclosure, a barcodereader system is disclosed that includes a barcode reader comprising ahousing and a first mating structure connected to the housing, a dockingstation that includes a second mating structure, and a magnet configuredto produce magnetic forces that strengthen the coupling between thebarcode reader and the docking station. The second mating structure maybe configured to mate with the first mating structure to form a couplingbetween the barcode reader and the docking station.

The first mating structure may include a protrusion. The second matingstructure may include a cavity.

The first mating structure may include a cavity. The second matingstructure may include a protrusion.

The docking station may include the magnet. The first mating structuremay include metal. The magnetic forces may be produced when the magnetis brought within a vicinity of the metal of the first mating structure.

The second mating structure may include the magnet.

The coupling between the barcode reader and the docking station may notpermit rotation of the barcode reader relative to the docking station.

The first mating structure and the second mating structure may be atleast one of star shaped or polygon shaped.

The barcode reader may further include a magnetic field detector. Thebarcode reader may be configured to enable a presentation mode inresponse to a magnetic field being detected by the magnetic fielddetector.

In accordance with another aspect of the present disclosure, a barcodereader is disclosed that includes a housing, a first mating structureconnected to the housing, and at least one of a metallic surface on thefirst mating structure or a magnet within the housing. The first matingstructure may be configured to mate with a second mating structure thatis part of a docking station to form a coupling between the barcodereader and the docking station. The metallic surface or the magnet maybe configured to facilitate magnetic forces that strengthen the couplingbetween the barcode reader and the docking station.

The first mating structure may include a protrusion. The second matingstructure may include a cavity.

The first mating structure may include the metallic surface. The dockingstation may include the magnet. The magnetic forces may be produced whenthe magnet is brought within a vicinity of the metallic surface of thefirst mating structure.

The second mating structure may include the magnet.

At least a portion of the first mating structure and at least a portionof the second mating structure may be at least one of star shaped orpolygon shaped.

In accordance with another aspect of the present disclosure, a dockingstation for a barcode reader is disclosed that includes a housing and afirst mating structure connected to the housing. The docking station mayinclude a base, a second mating structure connected to the base, and atleast one of a magnet or a metallic surface on the second matingstructure. The second mating structure may be configured to mate withthe first mating structure to form a coupling between the barcode readerand the docking station. The magnet or the metallic surface may beconfigured to facilitate magnetic forces that strengthen the couplingbetween the barcode reader and the docking station.

The first mating structure may include a protrusion. The second matingstructure may include a cavity.

The first mating structure may include a cavity and the second matingstructure may include a protrusion.

The docking station may include the magnet. The first mating structuremay include a metallic surface. The magnetic forces may be produced whenthe magnet is brought within a vicinity of the metallic surface of thefirst mating structure.

The second mating structure may include the magnet.

The first mating structure and the second mating structure may be atleast one of star shaped or polygon shaped.

BRIEF DESCRIPTION OF THE DRAWINGS

To more fully describe the above-recited and other features of thedisclosure a more particular description is provided with reference tospecific embodiments, which are illustrated in the appended drawings.Like elements have been designated by like reference numbers in theaccompanying figures.

FIGS. 1A and 1B illustrate an example of a stylus barcode reader inaccordance with one embodiment of the present disclosure.

FIGS. 2A-C illustrate an example of a stylus barcode reader with abarcode reader rotatably secured at one end of the stylus barcodereader.

FIG. 3A depicts use of the stylus barcode reader shown in FIGS. 1A and1B against a touch screen of a tablet or a smart phone.

FIG. 3B depicts various ways in which the capacitive tip of the stylusbarcode reader may be used to select applications, workflow screens anddata fields.

FIG. 4 shows the stylus barcode reader of FIGS. 1A and 1B and an exampleof a docking station for charging the stylus barcode reader.

FIGS. 5A and 5B illustrate top and side views of another exemplarydocking station with a stylus barcode reader docked in for charging.

FIG. 6 illustrates front and rear views of an example of a case for ahand-held computing device with a docking mount to hold a stylus barcodereader on the back surface of the case.

FIG. 7 shows a diagram of a case for a hand-held computing device inaccordance with one embodiment.

FIGS. 8A and 8B illustrate rear and side views of an example of a casewith a stylus barcode reader held in a docking mount on the rear surfaceof the case.

FIG. 9 illustrates an example of an electronic device case with adetachable battery.

FIG. 10 illustrates an example of a docking station having a well fordocking a stylus barcode reader.

FIG. 11 illustrates an example of a stylus barcode reader and a dockingstation secured in a chest pocket of a shirt with the stylus barcodereader docked in for charging.

FIG. 12 illustrates, as an example, a docking station secured to anindividual using a belt.

FIG. 13 shows an example of a case for a hand-held computing device witha well for charging a stylus barcode reader.

FIG. 14 illustrates an example of a flat docking station.

FIG. 15A illustrates an example of a mouse-shaped barcode reader withcharging contacts on a bottom surface.

FIG. 15B illustrates a bottom view of the mouse-shaped barcode reader.

FIG. 15C illustrates top, side, and front views of an exemplary combinedmouse barcode reader.

FIG. 16 illustrates a ring reader and a wrist watch connected by a wirein accordance with an exemplary embodiment.

FIG. 17 illustrates an example of an eyeglass barcode reader.

FIG. 18A is a block diagram of a barcode reader system which may beimplemented in any of the embodiments of the barcode readers disclosedherein.

FIG. 18B depicts exemplary operation of the decoder in accordance withone embodiment.

FIG. 18C shows the interface between the image sensor system package andthe image capture control and decode system.

FIG. 18D represents an exemplary operation of certain components of thebarcode reader in accordance with one embodiment of the presentdisclosure.

FIG. 19A is a ladder diagram representing an authentication procedurefor authenticating a barcode reader to a host computer as a trustedaccessory in accordance with one embodiment.

FIGS. 19B and 19C depict example packet formats for communicationbetween a barcode reader and a host computer.

FIGS. 20A and 20B depict exemplary operation of the barcode reader, thedocking station, and the host computer.

FIGS. 21A and 21B depict another exemplary operation of the barcodereader, the docking station, and the host computer.

FIGS. 22A and 22B illustrate an example of a barcode reading systemincluding a barcode reader and a docking station.

FIG. 22C illustrates components that may be included in one examplebarcode reader.

FIGS. 23A and 23B illustrate an example of a second mating structure anda barcode reader that includes a first mating structure.

FIGS. 24A and 24B illustrate another example of a second matingstructure and a barcode reader that includes a first mating structure.

FIGS. 25A and 25B illustrate an example of a docking station thatincludes a base and a second mating structure.

FIGS. 26A and 26B illustrate an example of a coupler that includes afirst mating structure and a second mating structure.

FIG. 26C illustrates a first mating structure with a cavity.

FIG. 27 illustrates another example of a couple that includes a firstmating structure and a second mating structure.

FIG. 28 illustrates an example of a method for changing an operationalmode of a barcode reader.

DETAILED DESCRIPTION

The present disclosure concerns a barcode reading system (which may alsobe referred to as a barcode reader system) that may include a barcodereader and a docking station. The barcode reader and the docking stationmay each have a corresponding connector. The connectors may be designedto connect to each other and enable a barcode reader to connect to andbe mounted on a docking station. The connectors may be designed so thatthe barcode reader can be mounted on the docking station such that thebarcode reader does not rotate (i.e., the barcode reader is locked intoplace).

One possible design of a barcode reading system may include a barcodereader with a first connector that includes a cavity having a shape of amany-pronged star polygon and a docking station with a second connectorthat includes a protrusion shaped to fit into the cavity of the firstconnector. Using connectors of this type may enable a user to select aspecific position for the barcode reader when docking the barcode readeron the docking station.

A barcode reading system may also be designed so that a barcode readerenters a presentation mode (a mode where the barcode reader readsbarcodes placed in its field of view without further user action) whenmounted on a docking station. The docking station may include a firstconnector and the first connector may include a magnet. The barcodereader may include a second connector and a device to detect magneticfield. When the first connector is coupled to the second connector(i.e., when the barcode reader is mounted onto the docking station usingthe first connector and the second connector), the device to detectmagnetic field may detect a magnetic field created by the magnet of thefirst connector. Detecting a magnetic field may cause the barcode readerto enter a presentation mode of operation. Such a design may facilitatebarcode reading by enabling a user of a barcode reader to cause abarcode reader to enter a presentation mode of operation simply bymounting the barcode reader on a docking station.

FIGS. 1A and 1B illustrate an example of a barcode reader 1100 inaccordance with one embodiment of the present disclosure, the barcodereader being in the form of a stylus barcode reader.

The stylus barcode reader 1100 includes an elongated housing 1102. Theelongated housing 1102 includes a first portion 1102 a extending from acentral point 1103 of the housing to a first end 1103 a and a secondportion 1102 b extending from the central point 1103 to a second end1103 b. The first portion 1102 a may be generally cylindrical with adiameter on the order of 5 to 10 mm that is approximately the diameterof a pen and is configured to be held by an operator in the same manneras an operator would hold a pen for writing. The second portion 1102 bmay also be generally cylindrical but may be of a larger diameter suchthat its interior region may be of sufficient size to accommodate thecomponents of a barcode reader as discussed herein. The barcode reader1100 may include a capacitive tip 1104 positioned at the first end 1103a of the housing 1102 for use as a stylus against a capacitive touchscreen when an operator is holding the housing 1102 (holding the firstportion 1102 a) in a writing position.

A barcode reader 1106 may be positioned at the second end 1103 b of thehousing 1102 and may be used for reading barcodes. The barcode reader1106 may be a laser reader or an imaging-based barcode reader whichincludes illumination light-emitting diodes (LEDs), targeting LEDs, alens for focusing an image onto a photo sensor, readout circuitry andcircuitry to deliver image data to a decoder, which will be explained indetail below.

The housing 1102 of the stylus barcode reader 1100 may also include atrigger button 1108, a good read signal indicator 1110, a battery 1114within the housing 1102, and a plurality of charging contacts 1112.

The trigger button 1108, if pressed by a user, triggers reading of abarcode presented in a field of view of a camera of the barcode reader1106. The good read signal indicator 1110 indicates successful readingand decoding of the barcode.

The charging contacts 1112 are for providing charging power to thebattery 1114 when coupled to mating contacts (e.g., charging contacts1312 in FIG. 4) on a docking station (e.g., the docking station 1300 inFIG. 4). The charging contacts 1112 include at least one chargingcontact for power and at least one charging contact for ground. Thecharging contacts 1112 are coupled to mating contacts on the dockingstation when a mating surface 1120 of the stylus barcode reader 1100 ispositioned against a corresponding mating surface (e.g., the surface1320 in FIG. 4) of the docking station.

In one embodiment the battery 1114 may be a rechargeable battery such asa lithium ion battery which provides operating power for the barcodereader 1100 (including any wireless communication systems therein) forextended operation of the barcode reader 1100. Extended operation meansthat an operator may utilize the barcode reader 1100 for multiple scansduring work flow that may last several hours.

In another embodiment, the battery 1114 may be a rechargeable battery ora super capacitor which provides operating power for the barcode reader1100 for a limited number of barcode reads and storage of decoded datawithin the barcode reader 1100 for subsequent transfer to a dockingstation. The limited number of barcode reads may be less than 10 barcodereads, at which time the battery 1114 may have insufficient power foradditional barcode reads. Transfer of decoded data to the dockingstation may require power coupled from the docking station to thebarcode reader upon docking.

In each case, the battery 1114 may be charged through the chargingcircuitry included in the stylus barcode reader 1100 when the stylusbarcode reader 1100 is coupled to a docking station.

The charging contacts 1112 may be power/data contacts which also providepower/data connectivity to a host device, for example, by using two orfour contacts. The terms charging contacts and power/data contacts areused interchangeably. Data related to decoding of a barcode may betransferred via the charging contacts 1112. The power/data connectivitymay be in compliance with a Universal Serial Bus (USB) protocol. Thestylus barcode reader 1100 may include radio frequency (RF) circuitryfor sending image data or decoded data of a barcode to a remote host.

The stylus barcode reader 1100 may further include a magnetic structure1116 (e.g., one or more magnets) for holding the stylus barcode reader1100 against a mating surface (e.g., the surface 1320 in FIG. 4) of thedocking station when docked for charging. The charging contacts 1112 maybe associated with the magnetic structure 1116 to provide a sharp snapwhen the stylus barcode reader 1100 is mated to the docking station aswill be discussed in more detail herein.

The barcode reader 1106 may have a field of view extending along alongitudinal axis of the housing 1102. Alternatively, the barcode reader1106 may have a field of view adjustable with respect to the housing1102. As shown in FIGS. 2A-2C, the barcode reader 1106 may be rotatableabout a longitudinal axis of the housing 1102 to adjust the field ofview. FIG. 2B shows the barcode reader 1106 with a half turn and FIG. 2Cshows the barcode reader 1106 with a full turn. The barcode reader 1106may be connected to the housing 1102 with a swivel part and theconnecting surfaces of the barcode reader 1106 and the housing 1102 areslanted such that the field of view of the barcode reader 1106 may beadjusted by rotating the barcode reader 1106 about the axis of thehousing 1102.

Alternatively, the barcode reader 1106 may be rotatable about an axisdifferent from a longitudinal axis of the housing 1102 to adjust thefield of view. The barcode reader may be rotatable about an axisperpendicular to a longitudinal axis of the housing 1102. The barcodereader 1106 may be connected to the housing 1102 with a hinge 2140 asshown in FIG. 11.

FIG. 3A depicts using the stylus barcode reader 1100 in use with a touchscreen of a computing device, such as a tablet, a smart phone, or thelike. The stylus barcode reader 1100 may be gripped by an operator(i.e., gripping the first portion 1102 a in the same manner as grippinga pen) and used as a stylus with the capacitive tip 1104 against thetouch screen as shown in FIG. 3A. The capacitive tip 1104 may bereplaceable and may be replaceable in different sizes depending on anapplication.

Turning to FIG. 3B in conjunction with FIG. 3A, the capacitive tip 1104at the first end 1103 a may be utilized to, any of: i) select one ofmultiple applications 1124 into which barcode data is to be input asdepicted on the display screen of a computing device 1122 a; ii) selectone of multiple workflow screens or pages 1126 within an applicationinto which barcode data is to be input as depicted on the display screenof a computing device 1122 b; and iii) select one of multiple datafields 1128 within an application into which barcode data is to be inputas depicted on the display screen of a computing device 1122 c.

Docking Station

FIG. 4 depicts a first embodiment of a docking station 1300 inaccordance with an embodiment of the present disclosure, structured as acradle style docking station for the stylus barcode reader 1100. Thedocking station 1300 may provide for charging the stylus barcode reader1100 and/or interfacing data between the stylus barcode reader 1100 anda host computer 1331.

The cradle style docking station 1300 includes a partially openbarrel-shaped component 1311 and a base 1330. The partially openbarrel-shaped component 1311 may have a diameter being of the same sizeas the diameter of the second portion 1102 b of the barcode reader 1100.The open portion of the barrel-shaped component 1311 may be at least 180degrees (e.g. the spacing of the open portion is at least the diameterof the second portion 1102 b of the barcode reader 1100) such that thebarcode reader 1100 may be inserted into the open portion in thedirection of arrow 1315. The base 1330 supports the partially openbarrel-shaped component 1311 and supports a tip component 1317. The tipcomponent 1317 supports the capacitive tip 1104 when the barcode reader1100 is positioned within the partially open barrel-shaped component1311 and ensures that the reader 1100 is correctly positioned within thepartially open barrel-shaped component 1311 in the longitudinaldirection.

The interior of the barrel-shaped component 1311 may include a pluralityof charging/data contacts 1312. The charging/data contacts 1312 mayinclude at least one charging contact for power and at least onecharging contact for ground. If the docking station 1300 is furtherutilized for communication between the barcode reader 1100 and a hostcomputer 1331 the charging/data contacts 1312 may further include twodata contacts and the combination of the two data contacts and the powerand ground contacts may comply with the USB standard.

The charging/data contacts 1312 are coupled to corresponding chargingcontacts 1112 on the stylus barcode reader 1100 when the stylus barcodereader 1100 is positioned within the partially open barrel-shapedcomponent 1311, against a mating surface 1320 of the partially openbarrel-shaped component 1311, and longitudinally positioned with thecapacitive tip 1104 positioned within the tip component 1317.

The base 1330 may be configured to place the docking station 1300 on ahorizontal surface (e.g., on a desk). In this case, the stylus barcodereader 1100 is positioned on top of the docking station 1300 when thedocking station 1300 is positioned on the horizontal surface.Alternatively, the base 1330 may be configured to secure the dockingstation 1300 to a vertical surface. In that case, the mating surface1320 may be generally vertical when the docking station 1300 is securedto the vertical surface, and a shape of the mating surface 1320 or thepositioning structure may be adapted to support a weight of the stylusbarcode reader 1100 when the stylus barcode reader 1100 is held againstthe mating surface 1320, for example, by the magnetic structure 1316.

The docking station 1300 may include a positioning structure forgenerally guiding alignment of the stylus barcode reader 1100 towardsthe mating surface 1320 of the docking station and, more specifically,generally guiding alignment of the stylus barcode reader 1100 towardsthe mating surface 1320 to a point where the magnetic fields (describedherein) are able to take effect and provide precise alignment of thestylus barcode reader 1100 with the mating surface 1320 in a manner inwhich the charging contacts 1112 of the stylus barcode reader 1100 alignwith, and are in contact with, the charging/data contacts 1312 of thedocking station 1300.

The positioning structure may be the sides of the partially openbarrel-shaped component 1311 and the distance between the partially openbarrel-shaped structure 1311 and the tip component 1317 which, incombination, guide the barcode reader 1100 into general alignment (inboth the lateral and longitudinal directions) between the chargingcontacts 1112 of the stylus barcode reader 1100 and the charging/datacontacts 1312 of the docking station 1300. In more detail, generalalignment is a position wherein the stylus barcode reader 1100 isattracted to the mating surface 1320 by the magnetic field of the firstmagnet of the stylus barcode reader 1100 being attracted to the magneticfield of the first magnet of the docking station 1300 and the magneticfield of the second magnet of the stylus barcode reader 1100 beingattracted to the magnetic field of the second magnet of the dockingstation 1300. The magnetic field may rotate and/or displace the stylusbarcode reader 1100 (laterally or longitudinally) into alignment withthe mating surface 1320 of the docking station 1300.

The positioning structure may include a cross section at a base end ofthe positioning structure adjacent to the mating surface 1320 that islarger than a cross section at a distal end of the positioning structurespaced away from the mating surface 1320. When the barcode reader isimprecisely aligned with the distal end, the positioning structureguides the barcode reader into precise alignment with the base end whenthe barcode reader is positioned against the mating surface 1320.

Referring to FIG. 1A in conjunction with FIG. 4, magnetic polarity maybe used to ensure that correct charging contacts on the stylus barcodereader 1100 align with correct charging/data contacts 1312 on thedocking station 1300 and provide the sharp snap to indicate that thestylus barcode reader 1100 is correctly mated to the docking station1300.

The barcode reader 1100 may include a magnetic structure 1116, which maybe two magnets, positioned adjacent to at least one of the chargingcontacts 1112. A first magnet may have a first polarity directed towardsthe mating surface 1320 of the docking station 1300 when the stylusbarcode reader 1100 is positioned against the mating surface 1320 of thedocking station 1300, and a second magnet may have an opposing polaritydirected towards the mating surface 1320 of the docking station 1300when the stylus barcode reader 1100 is positioned against the matingsurface 1320 of the docking station.

The docking station 1300 may also include a corresponding magneticstructure 1316 (e.g., a first magnet with the opposing polarity and asecond magnet with the first polarity), such that the stylus barcodereader 1100 may be i) attracted to and positioned against the matingsurface 1320 of the docking station 1300 when a magnetic field of thefirst magnet of the stylus barcode reader 1100 is attracted to amagnetic field of the first magnet of the docking station 1300 and amagnetic field of the second magnet of the stylus barcode reader 1100 isattracted to a magnetic field of the second magnet of the dockingstation 1300, and ii) repelled from being positioned against the matingsurface 1320 of the docking station 1300 when the magnetic field of thefirst magnet of the stylus barcode reader 1100 is repelled from themagnetic field of the second magnet of the docking station 1300 and themagnetic field of the second magnet of the stylus barcode reader 1100 isrepelled from the magnetic field of the first magnet of the dockingstation 1300. This attraction/repulsion dynamic provides for themagnetic field to position (both laterally and rotationally) the barcodereader 1100 within the docking station with the charging contacts 1112of the barcode reader properly aligned, and in contact with, thecharging contacts 1312 of the docking station 1300.

One (or one set) of a plurality of charging contacts (for examplecharging contacts 1112 on the barcode reader 1100) may be flat and theother (or the other set) of a plurality of charging contacts (forexample charging contacts 1312 on the docking station 1300) may be pinson a spring to apply pressure to the flat surface and maintain contact.The springs may have less power than the magnets such that the magnetsmay hold the two devices together while the springs hold the contactstogether.

FIGS. 5A and 5B illustrate top and side views of another exemplarycradle style docking station 1400 with a stylus barcode reader 1100docked in for charging. The docking station 1400 may be placed on a flathorizontal surface and the stylus barcode reader 1100 may be charged byan external power source when docked in the docking station 1400.

FIG. 6 illustrates front and rear views of yet another exemplary dockingstation 1600 in accordance with the present disclosure. The dockingstation 1600 is configured as a case for a hand-held computing device.The docking station 1600 (i.e., case) may enclose, either partially orfully, a hand-held computing device 1700 (such as a smart phone, atablet, or the like). The stylus barcode reader 1100 may be used with acomputing device 1700 (similar to computing devices depicted in FIGS. 3Aand 3B) having a touch screen while held in the docking station 1600 asshown in FIG. 6.

The docking station 1600 may include a body 1602 and a battery 1606(shown in FIG. 9). The body 1602 accommodates a hand-held computingdevice 1700.

The docking station 1600 includes a partially open barrel-shaped dockingmount 1604 to hold a stylus barcode reader 1100 on the rear side of thecase. Alternatively, the docking mount 1604 may be arranged on a side ofthe docking station 1600. The docking mount 1604 functions as a dockingstation for the stylus barcode reader 1100 and may include some or allof the features of the docking station 1300 disclosed above.

In more detail, the docking mount 1604 may include at least two chargingcontacts 1612 including at least one for power and at least one forground. The charging contacts 1612 of the docking mount 1604 are coupledto charging contacts 1112 on the stylus barcode reader 1100 when thestylus barcode reader 1100 is positioned against a mating surface 1620of the docking mount 1604 in a similar manner as described with respectto the docking station 1300 of FIG. 4.

Similar to the docking station 1300 of FIG. 4, the docking mount 1604may include a positioning structure for generally guiding alignment ofthe stylus barcode reader 1100 towards the mating surface 1620 of thedocking mount 1604 and, more specifically, generally guiding alignmentof the stylus barcode reader 1100 towards the mating surface 1620 to apoint where the magnetic fields (described herein) are able to takeeffect and provide precise alignment of the stylus barcode reader 1100with the mating surface 1620 in a manner in which the charging contacts1112 of the stylus barcode reader 1100 align with, and are in contactwith, the charging contacts 1612 of the docking mount 1604.

Similar to the docking station 1300 in FIG. 4, the positioning structuremay be the sides of the partially open barrel-shaped structure extendingoutward from the backside of the docking station 1600 (or side of thedocking station 1600) which guides the barcode reader 1100 into generalalignment between the charging contacts 1112 of the barcode reader 1100and the charging contacts 1612 of the docking mount 1604.

Further, for general longitudinal and rotational alignment, thepositioning structure may further include a ridge 1622 extended outwardfrom the mating surface 1620 and may be configured to engage with acavity or a recess 1125 formed in a housing 1102 of the stylus barcodereader 1100. The ridge 1622 may be smaller than the cavity to providegeneral alignment. Alternatively, the positioning structure may be acavity extending into the mating surface 1620 of the docking mount 1604,and a corresponding ridge may be formed on the mating surface 1120 ofthe stylus barcode reader 1100.

The positioning structure may include a cross section at a base end ofthe positioning structure adjacent to the mating surface 1620 which islarger than a cross section at a distal end of the positioning structurespaced away from the mating surface 1620 such that when the barcodereader is imprecisely aligned with the distal end the positioningstructure guides the barcode reader into precise alignment with the baseend when the barcode reader is positioned against the mating surface1620.

The docking mount 1604 may include a magnetic structure 1616 for holdingthe stylus barcode reader 1100 against the mating surface 1620. Themagnetic structure 1616 may include one or more magnets. For example,the magnetic structure 1616 may include a first magnet with a northpolarity directed towards the stylus barcode reader 1100 when the stylusbarcode reader 1100 is positioned against the mating surface 1620, and asecond magnet with a south polarity directed towards the stylus barcodereader 1100 when the stylus barcode reader 1100 is positioned againstthe mating surface 1620. The magnetic structure 1616 and the magneticstructure 1116 in the stylus barcode reader 1100 result in the stylusbarcode reader 1100 i) being attracted to and positioned against themating surface 1620 when a magnetic field of the first magnet of thestylus barcode reader 1100 is attracted to a magnetic field of the firstmagnet of the docking mount 1604 and a magnetic field of the secondmagnet of the stylus barcode reader 1100 is attracted to a magneticfield of the second magnet of the docking mount 1604, and ii) beingrepelled from being positioned against the mating surface 1620 when themagnetic field of the first magnet of the stylus barcode reader 1100 isrepelled from the magnetic field of the second magnet of the dockingmount 1604 and the magnetic field of the second magnet of the stylusbarcode reader 1100 is repelled from the magnetic field of the firstmagnet of the docking mount 1604.

FIG. 10 illustrates yet another exemplary docking station 2100 inaccordance with the present disclosure. The docking station 2100 isconfigured as a wearable docking station sized to fit within a typicalchest pocket of a shirt, or to be mounted in zone 2308 of a shoulderbelt 2306 or zone 2302 of a waist belt 2304, both as depicted in FIG.12.

The docking station 2100 may include a body 2113 which includes abattery 2300 and a partially open barrel-shaped docking mount 2114 tohold a stylus barcode reader 1100 on one of the sides of the case (shownfrom the front side, facing away from the user when worn in a chestpocket). The docking mount 2114 functions as a docking station for thestylus barcode reader 1100 and may include some or all of the featuresof the docking station 1300 disclosed above.

In more detail, the docking mount 2114 may include at least two chargingcontacts 2112 including at least one for power and at least one forground. The charging contacts 2112 of the docking mount 2114 are coupledto charging contacts 1112 on the stylus barcode reader 1100 when thestylus barcode reader 1100 is positioned against a mating surface 2111of the docking mount 2114 in a similar manner as described with respectto the docking station 1300 of FIG. 4.

Similar to the docking station 1300 of FIG. 4, the docking mount 2114may include a positioning structure for generally guiding alignment ofthe stylus barcode reader 1100 towards the mating surface 2111 of thedocking mount 2114 and, more specifically, generally guiding alignmentof the stylus barcode reader 1100 towards the mating surface 2111 to apoint where the magnetic fields (described herein) are able to takeeffect and provide precise alignment of the stylus barcode reader 1100with the mating surface 2111 in a manner in which the charging contacts1112 of the stylus barcode reader 1100 align with, and are in contactwith, the charging contacts 2112 of the docking mount 2114.

The positioning structure is similar to that described with respect todocking station 1300 and may include the sides 2118 a, 2118 b of thepartially open barrel-shaped structure which guides the barcode reader1100 into general alignment between the charging contacts 1112 of thebarcode reader 1100 and the charging contacts 2112 of the docking mount2114.

Further, for general longitudinal and rotational alignment, thepositioning structure may further include a ridge 2120 extended outwardfrom the mating surface 2111 and may be configured to engage with acavity or a recess 1125 formed in a housing 1102 of the stylus barcodereader 1100. The ridge 2120 may be smaller than the cavity or recess1125 to provide general alignment. Alternatively, the positioningstructure may be a cavity extending into the mating surface 2111 of thedocking mount 2114, and a corresponding ridge may be formed in thehousing 1102 of the stylus barcode reader 1100.

The docking mount 2114 may include a magnetic structure 2116 similar tothat described with respect to the docking station 1300 of FIG. 4 forholding the stylus barcode reader 1100 against the mating surface 2111.The magnetic structure 2116 may include one or more magnets. Forexample, the magnetic structure 2116 may include a first magnet 2116 awith a north polarity directed towards the stylus barcode reader 1100when the stylus barcode reader 1100 is positioned against the matingsurface 2111, and a second magnet 2116 b with a south polarity directedtowards the stylus barcode reader 1100 when the stylus barcode reader1100 is positioned against the mating surface 2111. The magneticstructure 2116 and the magnetic structure 1116 in the stylus barcodereader 1100 result in the stylus barcode reader 1100 i) being attractedto and positioned against the mating surface 2111 when a magnetic fieldof the first magnet of the stylus barcode reader 1100 is attracted to amagnetic field of the first magnet of the docking mount 2114 and amagnetic field of the second magnet of the stylus barcode reader 1100 isattracted to a magnetic field of the second magnet of the docking mount2114, and ii) being repelled from being positioned against the matingsurface 2111 when the magnetic field of the first magnet of the stylusbarcode reader 1100 is repelled from the magnetic field of the secondmagnet of the docking mount 2114 and the magnetic field of the secondmagnet of the stylus barcode reader 1100 is repelled from the magneticfield of the first magnet of the docking mount 2114.

FIG. 13 depicts yet another embodiment of a docking station 2000 inaccordance with the present disclosure. Like docking station 2100 ofFIG. 10, docking station 2000 is configured as a wearable dockingstation sized to fit within a typical chest pocket of a shirt, or to bemounted in zone 2308 of the shoulder belt 2306 or zone 2302 of the waistbelt 2304, both as depicted in FIG. 12.

The docking station 2000 includes a docking well 2010 which may beformed in the body 2002 of the docking station 2000. The stylus barcodereader 1100 may be inserted into the well 2010. The well 2010 includescharging contacts 2012 for charging the stylus barcode reader 1100 whenthe stylus barcode reader 1100 is inserted into the well 2010.

The well 2010 includes a cavity 2011 and a plurality of chargingcontacts 2012 on the interior periphery of the cavity 2011. A stylusbarcode reader 1100 is inserted into the cavity 2011 for charging. Thecharging contacts 2012 include at least one contact for power and atleast one contact for ground. The charging contacts 2012 are configuredfor coupling to charging contacts 1112 on the stylus barcode reader 1100when the stylus barcode reader 1100 is positioned in the cavity 2011 ata correct depth and with a correct rotation.

The well 2010 and the stylus barcode reader 1100 may include positioningstructure for generally guiding alignment of the stylus barcode reader1100 towards the well 2010 of the docking station 2000, morespecifically, guiding generally alignment of the charging contacts 1112of the stylus barcode reader 1100 towards the charging contacts 2012 ofthe well 2010 to a point where the magnetic fields (described herein)are able to take effect and provide precise alignment of the stylusbarcode reader 1100 within the well 2010 such that the charging contacts1112 of the stylus barcode reader 1100 align with, and are in contactwith, the charging contacts 2012 of the well 2010.

The positioning structure may be: i) the sides of the perimeter of thecavity 2011 (with a cross section larger than the diameter of the firstportion 1102 a of the barcode reader 1100) and the depth 2018 of thecavity 2011; and the external housing of the barcode reader 1100 as wellas the distance between the capacitive tip 1104 and the chargingcontacts 1112. In combination, the positioning structure guides thebarcode reader 1100 into general alignment into the cavity 2011 to adepth at which the capacitive tip 1104 touches the bottom of the cavityand at which point the charging contacts 1112 of the barcode reader 1100are aligned (in the depth dimension) with the charging contacts 2012 onthe well 2010 of the docking station 2000.

The well 2010 may further include a magnetic structure 2016 for rotatinginto rotational position, and holding the stylus barcode reader 1100 ata position within the cavity 2011 such that the charging contacts 1112on the stylus barcode reader 1100 are in contact with the chargingcontacts 2012. The magnetic structure 2016 may include one or moremagnets. For example, the magnetic structure 2016 may include a firstmagnet 2016 a with a north polarity directed towards the stylus barcodereader 1100 when the stylus barcode reader 1100 is positioned within thecavity 2011, and a second magnet 2016 b with a south polarity directedtowards the stylus barcode reader 1100 when the stylus barcode reader1100 is positioned within the cavity 2011. Corresponding magnets withinthe stylus barcode reader 1100, including a first magnet with a southpolarity and a second magnet with a north polarity, may result in thestylus barcode reader 1100 i) being attracted to and positioned withinthe cavity 2011 with the charging contacts 1112 on the stylus barcodereader 1100 in contact with the charging contacts 2012 when a magneticfield of the first magnet of the stylus barcode reader 1100 is attractedto a magnetic field of the first magnet of the well 2010 and a magneticfield of the second magnet of the stylus barcode reader 1100 isattracted to a magnetic field of the second magnet of the well 2010, andii) being repelled from being positioned within the cavity 2011 with thecharging contacts 1112 on the stylus barcode reader 1100 in contact withthe charging contacts 2012 when the magnetic field of the first magnetof the stylus barcode reader 1100 is repelled from the magnetic field ofthe second magnet of the well 2010 and the magnetic field of the secondmagnet of the stylus barcode reader 1100 is repelled from the magneticfield of the first magnet of the well 2010. As such, theattraction/repulsion forces will rotate the stylus into alignment andprovide the sharp snap as the magnets make contact.

In other embodiments, the positioning structure may be a structureextending outward from a surface defining an entrance to the cavity2011. The structure may be configured to engage with a correspondingpositioning structure of the stylus barcode reader 1100.

Alternatively, the positioning structure may be a recess extendinginward from a surface defining an entrance to the cavity 2011. Therecess may be configured to engage with a corresponding positioningstructure of the stylus barcode reader 1100.

The positioning structure may further be configured to rotate the stylusbarcode reader 1100 within the cavity 2011 when the stylus barcodereader 1100 is inserted into the cavity 2011 such that the chargingcontacts 1112 on the stylus barcode reader 1100 are generally alignedwith the charging contacts 2012.

The docking stations 1600, 2000 may be secured to an individual using anattachment feature. The attachment feature may be a waist belt, ashoulder belt, a flexible band, or a flexible strap. Alternatively, theattachment feature may be one of a clip, a safety pin and claspcombination, a flange for being sewn into an article of clothing, or anyother means.

Referring to FIG. 7, the docking station 1600 (i.e., a case) and each ofthe wearable docking stations 2000, 2100, and 2400 (as shown in FIG. 14)may include structure depicted in FIG. 7. FIG. 7 depicts the structureembodied in the docking station 1600 for illustration purposes and thestructure will be explained hereafter with reference to the dockingstation 1600. However, it should be noted that the docking stations2000, 2100 and 2400 may also have a similar structure as depicted inFIG. 7. The docking station 1600 may include a master battery 1606 (alsorepresented as 2300 in FIG. 10), master charging contacts 1632, a mastercharging circuitry 1630, and a device charging circuitry 1634.

The master charging contacts 1632 may include at least one mastercharging contact for power and at least one master charging contact forground.

The master charging circuitry 1630 is coupled between the master battery1606 and the master charging contacts 1632 and is configured to chargethe master battery 1606 when the master charging contacts 1632 arecoupled to an external power source (e.g., AC power through a walloutlet or a docking station for the case).

The master battery 1606 included in the docking station 1600 may: i)supply power to the other systems of the docking station as described inmore detail in FIGS. 20A, 20B, 21A and 21B; and/or ii) supply power tothe stylus barcode reader 1100 when docked to the docking station 1600.The master battery 1606 may be rechargeable and may be detachable andreplaceable as shown in FIG. 9.

The device charging circuitry 1634 is coupled between the master battery1606 and the charging contacts 1612 in the docking mount 1604 and mayprovide charging power from the master battery 1606 to the stylusbarcode reader 1100 when the stylus barcode reader 1100 is docked in thedocking mount 1604 (i.e., when the charging contacts 1612 are coupled tocorresponding charging contacts 1112 on the stylus barcode reader 1100).

The docking station 1600 may further include a trigger button 1640 onthe body 1602 to trigger scanning of a barcode when the stylus barcodereader 1100 is docked in the docking mount 1604.

FIGS. 15A and 15B illustrate a perspective view and a bottom view of yetanother exemplary barcode reader 2500 in accordance with the presentdisclosure. The barcode reader 2500 is a mouse-shaped barcode readerwith charging contacts on a bottom surface (as illustrated in FIG. 15B).FIG. 14 illustrates yet another example of a docking station 2400 inaccordance with an embodiment of the present disclosure that may be usedwith the mouse-shaped barcode reader 2500.

FIG. 15C illustrates top, side, and front views of an exemplary combinedmouse barcode reader 1500. The combined mouse barcode reader 1500 mayinclude a track ball 1502 and/or a roller wheel 1504 for scrolling ascreen and moving a cursor as in a conventional computer mouse. Thecombined mouse barcode reader 1500 may have one or more push buttons1506 (e.g., two push buttons). The push button(s) 1506 may be used totrigger capturing a barcode presented in a field of view of the cameraincluded in the mouse barcode reader 1500. The combined mouse barcodereader 1500 may function as a handheld barcode reader and may be used ona flat surface like a traditional computer mouse. The combined mousebarcode reader 1500 may function both as a hand-held barcode reader andas a computer mouse.

The docking station 2400 shown in FIG. 14 is a wearable flat dockingstation 2400 which again may be configured as a wearable docking stationsized to fit within a typical chest pocket of a shirt, or to be mountedin zone 2308 of shoulder belt 2306 or zone 2302 of a waist belt 2304,both as depicted in FIG. 12.

The docking station 2400 includes a mating surface 2402 and chargingcontacts 2412. The mating surface 2402 is a surface against which abarcode reader 2500 (shown in FIG. 15A) is positioned for charging. Thecharging contacts 2412 include at least one charging contact for powerand at least one charging contact for ground. The charging contacts 2412are coupled to charging contacts 2512 on the barcode reader 2500 whenthe barcode reader 2500 is positioned against the mating surface 2402.

The docking station 2400 and barcode reader 2500 may include apositioning structure. The positioning structure of the barcode reader2500 may include a cavity cross section at a base end of the positioningstructure adjacent to the mating surface 2111 which is larger than across section at a distal end of the positioning structure spaced awayfrom the mating surface 2111 (into the interior of the barcode reader2500) such that when the barcode reader 2500 is imprecisely aligned withthe distal end with protrusions on the docking station 2400, thepositioning structure may guide the barcode reader 2500 into precisealignment against the mating surface (e.g., the surface 2402) of thedocking station (e.g., the docking station 2400).

The docking station 2400 may include a magnetic structure 2416 (e.g.,magnets) for holding the barcode reader 2500 against the mating surface2402. For example, the magnetic structure 2416 may include a firstmagnet with a north polarity directed towards the barcode reader 2500when the barcode reader 2500 is positioned against the mating surface2402, and a second magnet with a south polarity directed towards thebarcode reader 2500 when the barcode reader 2500 is positioned againstthe mating surface 2402. Corresponding magnets within the barcode reader2500, including a first magnet with a south polarity and a second magnetwith a north polarity, may result in the barcode reader 2500 i) beingattracted to and positioned against the mating surface 2402 of thedocking station 2400 when a magnetic field of the first magnet of thebarcode reader 2500 is attracted to a magnetic field of the first magnetof the docking station 2400 and a magnetic field of the second magnet ofthe barcode reader 2500 is attracted to a magnetic field of the secondmagnet of the docking station 2400, and ii) being repelled from beingpositioned against the mating surface 2402 of the docking station 2400when the magnetic field of the first magnet of the barcode reader 2500is repelled from the magnetic field of the second magnet of the dockingstation 2400 and the magnetic field of the second magnet of the barcodereader 2500 is repelled from the magnetic field of the first magnet ofthe docking station 2400.

The docking station 2400 may include a positioning structure foraligning the barcode reader 2500 against the mating surface 2402 whenthe barcode reader 2500 is positioned against the mating surface 2402.For example, the positioning structure may be configured to rotate thebarcode reader 2500 into alignment against the mating surface 2402 whenthe barcode reader 2500 is attracted to the mating surface 2402 by themagnetic field of the first magnet of the barcode reader 2500 beingattracted to the magnetic field of the first magnet of the dockingstation 2400 and the magnetic field of the second magnet of the barcodereader 2500 being attracted to the magnetic field of the second magnetof the docking station 2400.

The positioning structure may be configured to laterally displace thebarcode reader 2500 into alignment against the mating surface 2402 whenthe barcode reader 2500 is attracted to the mating surface 2402 by themagnetic field of the first magnet of the barcode reader 2500 beingattracted to the magnetic field of the first magnet of the dockingstation 2400 and the magnetic field of the second magnet of the barcodereader 2500 being attracted to the magnetic field of the second magnetof the docking station 2400.

The positioning structure may be a structure (e.g., a ridge) extendingoutward from the mating surface 2402 and configured to engage with anexternal housing of the barcode reader 2500. The positioning structuremay extend outward from the mating surface 2402 to engage with a cavityor a recess formed in a housing of the barcode reader 2500.

Alternatively, the positioning structure may be a cavity extending intoa housing of the docking station 2400 from the mating surface 2402 toengage with an external housing of the barcode reader 2500.

The docking station 2400 may include a battery (not shown) for chargingthe barcode reader 2500 docked in the docking station 2400. The dockingstation 2400 may include master charging contacts, a master chargingcircuit, and a device charging circuit, similar to the configurationshown in FIG. 7. The master charging contacts include at least onemaster charging contact for power and at least one master chargingcontact for ground. The master charging circuitry is coupled between thebattery and the master charging contacts and configured to charge thebattery when the master charging contacts are coupled to an externalpower source. The device charging circuitry is coupled between thebattery and the charging contacts and configured to provide chargingpower from the battery to the barcode reader 2500 when the chargingcontacts 2412 are coupled to the charging contacts 2512 on the barcodereader 2500.

The mouse-shaped barcode reader 2500 includes a barcode reading unit2510, a battery 2514 and charging contacts 2512 on the bottom surface2502. The mouse-shaped barcode reader 2500 with a flat bottom surface2502 can be docked in a flat docking station 2400 shown in FIG. 14. Itshould be noted that the shape of the barcode reader 2500 is provided asan example and the barcode reader 2500 may be in any shape.

The barcode reading unit 2510 is for reading a barcode presented in afield of view of the barcode reading unit 2510. The battery 2514supplies operating power for the barcode reading unit 2510. The barcodereader 2500 has a flat bottom surface 2502 (i.e., a mating surface)configured to position against a corresponding mating surface 2402 of adocking station 2400 when the barcode reader 2500 is positioned on thedocking station 2400 for charging.

The charging contacts 2512 include at least one charging contact forpower and at least one charging contact for ground. The chargingcontacts 2512 are coupled to charging contacts 2412 on the dockingstation 2400 when the barcode reader 2500 is positioned against themating surface 2402 of the docking station 2400.

The barcode reader 2500 may include a magnetic structure 2516 (e.g.,magnets) for holding the barcode reader 2500 against the mating surface2402 of the docking station 2400. The barcode reader 2500 may include apositioning structure for aligning the barcode reader 2500 against themating surface 2402 of the docking station 2400 when the barcode reader2500 is positioned against the mating surface 2402 of the dockingstation 2400. The magnetic structure and the positioning structure ofthe barcode reader 2500 are structures corresponding to the magneticstructure and the positioning structure of the docking station 2400. Thepositioning structure may be a periphery of a housing of the barcodereader 2500 to be engaged with an extension formed around an edge of themating surface 2402 of the docking station 2400.

The barcode reader 2500 may include a radio frequency (RF) circuitry forsending image data or decoded data of a barcode to a remote host. Thebarcode reader 2500 may include a trigger button for triggeringcapturing of an image of a barcode. The barcode reader 2500 may includean indicator signal generator for generating a signal indicating asuccessful reading of a barcode. The barcode reader 2500 may be in acomputer mouse shape, or in any other shape with a flat mating surface.

FIG. 16 illustrates a ring reader and a wrist watch connected by a wire.The ring reader 2610 includes a ring-shaped body 2612 and a scan head2614 included in the ring-shaped body 2612 for scanning a barcode in afield of view of the scan head 2614.

The wrist watch 2620 is in communication with the ring reader 2610 andconfigured to process data received from the ring reader 2610. The ringreader 2610 and the wrist watch 2620 may be connected via a wireconnection 2630 for communicating data between the ring reader 2610 andthe wrist watch 2620. Alternatively, a wireless connection may beestablished between the ring reader 2610 and the wrist watch 2620. Thewrist watch 2620 may include a wireless interface for communicating witha host computer using a wireless protocol, such as IEEE 802.11 WiFi orBluetooth.

The wrist watch 2620 includes a battery 2642 for providing operatingpower for the scan head 2614 through the wire connection 2630. Thebattery 2642 may be included in a band 2640 of the wrist watch 2620. Thewire connection 2630 may be compatible with a Universal Serial Bus (USB)protocol.

FIG. 17 illustrates an example of an eyeglass barcode reader. Thebarcode reader 2700 includes an eyeglass frame 2710, a barcode reader2720, and a battery 2730. The barcode reader 2720 includes a camera 2722installed on the eyeglass frame for reading a barcode in a field of viewof the camera 2722. The battery 2730 provides operating power for thebarcode reader 2720. The barcode reader 2700 may include a pointingdevice for aiding a user to aim the camera at the barcode. The pointingdevice may be a laser. The barcode reader 2720 may be configured to readthe barcode in response to a trigger signal. The barcode reader 2700 mayinclude a power/data interface for sending data to a host computer andreceiving power from a power source.

FIG. 18A is a block diagram of a barcode reader 1130 which may beimplemented in any of the barcode readers 1100, 2500, 2610, and 2720.The barcode reader 1130 may include an image capture control and decodesystem 1132 in combination with an image sensor system package 1134, anillumination system 1136, and various input/output (I/O) peripheralsystems 1138 in accordance with one embodiment of the presentdisclosure.

The image sensor system package 1134 and the image capture control anddecode system 1132 may be included in two separate packages, each ofwhich may include one or more silicon dies that may include: i) aprocessor; ii) hardware circuits including digital signal processingand/or gate logic, and iii) memory. The processor may be a generalpurpose single or multi-die microprocessor (e.g., an ARM), a specialpurpose microprocessor (e.g., a digital signal processor (DSP)), amicrocontroller, a programmable gate array, etc. The processor may bereferred to as a central processing unit (CPU). The memory may be anycombination of non-volatile memory or storage and volatile memory orstorage. The non-volatile memory may include a combination of read-onlymemory (ROM) and/or flash memory.

The illumination system 1136 may include a plurality of illuminationsub-systems 1136 a-c, each having different illuminationcharacteristics. Some examples of different illumination characteristicsinclude the angle of illumination with respect to an optical axis, theintensity of illumination, the wavelength of illumination, diffusioncharacteristics of the illumination, the illumination profile which mayinclude the intensity of the illumination within a two dimensional planespaced from the barcode reader 1130 or the three dimensional shapewithin the field of view at which illumination emitted by theillumination sub-system has a predetermined intensity, etc.

The plurality of illumination sub-systems 1136 a-c may include a directbright field illumination system, a diffuse bright field illuminationsub-system, and a dark field illumination sub-system.

It should be noted that the number of illumination sub-systems 1136 a-cshown in FIG. 18A and the characteristics of each illuminationsub-system disclosed herein are provided only as an example. In analternative configuration, a barcode reader may include more than three(or any number of) different illumination sub-systems, and theillumination sub-systems may provide illumination having differentillumination characteristics (e.g., by changing the intensity,wavelength, angle, diffusion characteristics of the illumination,illumination profile characteristics or the like).

The I/O peripheral systems 1138 may include the trigger button 1108which may be a switch. In addition, the barcode reader 1130 may have oneor more output devices that convey information to a user. Such outputdevices may include the a speaker 1139, a vibration motor 1140, and/orone or more components that illuminate in a manner visible to a user,such as one or more LEDs 1141 which illuminate the good read signalindicator 1110 through a light pipe.

The I/O peripheral systems 18 may further include one or morecommunication interfaces 1142. The communication interfaces 1142 mayinclude a wireless LAN interface 1142 a and a point-to-point interface1142 b which may be a wireless point-to-point interface and/or ahardwired point-to-point interface coupled to the data portion of thepower/data contacts 1112, 2512.

The wireless LAN interface 1142 a may permit the barcode reader 1130 tobe an addressable endpoint in a wireless local area network andcommunicate with a host device through the LAN using, for example,Transmission Control Protocol/Internet Protocol (TCP/IP) or the like.

The wireless point-to-point interface(s) 1142 b may be, for example, aBluetooth® interface to enable the barcode reader 1130 to establish awireless point-to-point communication link with, and communicate overthe wireless communication link with, a host device (i.e., a hostcomputer).

The hardwired point-to-point interface(s) 1142 b may comprise aUniversal Asynchronous Receiver/Transmitter (UART) or a Universal SerialBus (USB) in each case to enable the barcode reader 1130 to establish apoint-to-point connection with a host device using a multi-conductordata interface through the data portion of the power/data contacts 1112,2512.

The image capture control and decode system 1132 may include: i) aprocessor 1144; ii) a memory 1146; and iii) hardware circuits 1148 forcoupling to, and driving operation of, each of the illumination system1136, the I/O peripheral systems 1138, and the image sensor systempackage 1134.

The processor 1144, as described, may be a general purpose single ormulti-die microprocessor (e.g., an ARM), a special purposemicroprocessor (e.g., a digital signal processor (DSP)), amicrocontroller, a programmable gate array, etc. The processor 1144 maybe referred to as a central processing unit (CPU). Although just asingle processor 1144 is shown in FIG. 18A, in an alternativeconfiguration, a combination of processors (e.g., an ARM and DSP) may beused.

The hardware circuits 1148 provide the interface between the imagecapture control and decode system 1132 and each of the illuminationsystem 1136, the I/O peripheral systems 1138, and the image sensorsystem package 1134. The hardware circuits 1148 may further includeillumination logic 1150 and pre-processing circuits 1151 a-n, each ofwhich will be described in more detail herein.

The memory 1146, as described, may be any combination of non-volatilememory or storage and volatile memory or storage. The memory 1146 mayinclude an image buffer 1157, an image processing module 1154, a decoder1155, and an image capture module 1156. These components may be storedin any combination of volatile and non-volatile memory. Some modules maybe stored in both volatile and non-volatile memory, for example, withpermanent storage of the module in non-volatile memory and a temporarycopy stored in volatile memory for execution by the processor 1144. Inaddition to, or as an alternative to, these modules, the memory 1146 maystore any number of other modules including but not limited to those setforth in the patent applications incorporated by reference in thisdisclosure. A more detailed description of the image capture control anddecode system 1132 is included herein.

The image sensor system package 1134 may include: i) a two-dimensionalphoto sensor array 1158 onto which illumination from the field of viewof the barcode reader is focused by the optic system 1154; ii) hardwaregate logic 1175 implementing one or more pre-processing circuits 1176a-n; iii) volatile memory or storage such as random access memoryimplementing an image buffer 1157; iv) hardware gate logic implementingwide bus logic 1198 for transferring each image frame captured by thephoto sensor array 1158 to the hardware gate logic 1175 (or the imagebuffer 1157); and v) control circuitry 1159 which may include acombination of gate logic, volatile memory or storage, a processorexecuting code stored in the memory implementing control of the photosensor array 1158 (image read-out), the wide bus logic 1198, thehardware gate logic 1175; the image buffer 1157, and transfer of imagedata records to the image capture control and decode system 1132.

The photo sensor array 1158 may comprise a two-dimensional rollingshutter array of pixels with each pixel comprising an activephotosensitive region capable of measuring or quantifying the intensityof illumination incident on the pixel fabricated, for example, usingknown complementary metal oxide semiconductor (CMOS) sensor technology.Each pixel may be a photodiode which accumulates charge over theduration of an exposure period. Prior to commencement of the exposureperiod the photodiode may be coupled to ground to dissipate anaccumulated charge and the exposure period for the pixel may commencewhen the photodiode is de-coupled from ground so that a chargeaccumulates in proportion to the intensity of illumination incident onthe pixel. The charge on the photodiode continues to accumulate so longas illumination is incident on the photodiode. The exposure period endswhen the accumulated charge is measured by an analog-to-digital (A/D)converter 1160.

In one embodiment, the photodiode may couple to the input of an A/Dconverter 1160 when the control circuitry 1159 generates a read signaland, upon coupling of the photodiode to the A/D converter 1160, the A/Dconverter 1160 generates a digital value representative of theaccumulated charge at the time the photodiode is coupled to the A/Dconverter which is input to a register of the wide bus logic 1198 fortransfer to the hardware gate logic 1175 (or the image buffer 1157).

In another embodiment, the photodiode may be coupled to the input of anA/D converter 1160 prior to the end of the exposure period. In thisembodiment, the A/D converter 1160 may be continually making a digitalvalue representative of the accumulating charge available at its outputport with that digital value continually increasing as chargeaccumulates on the photodiode (i.e. periodically updating the digitalvalue to represent the increasing voltage as charge accumulates on thephotodiode). In this embodiment when the control circuitry 1159generates a read signal the then current digital value (at the time ofthe read signal) is read or input to a register of the wide bus logic1198 for transfer to the pre-processing circuits 1176 a-n (or the imagebuffer 1157).

In order to improve sensitivity of the photo sensor array 1158, thepixels may not include a masked charge storage region associated witheach photosensitive region for temporarily holding accumulated chargefrom the photodiode region prior to coupling the charge from thephotodiode to the A/D converter 1160. Directly coupling thephotosensitive region to the A/D converter 1160 means that there is nocharge storage region separate from the photodiode on which charge isaccumulating. Stated another way, in neither of the foregoingembodiments is the accumulated charge on the photodiode buffered, as ananalog charge or otherwise, prior to being coupled to the A/D converter1160. Stated in yet another way, in neither of the foregoing embodimentsis accumulation of the charge stopped, or the accumulated chargeotherwise made static (with no more accumulation) prior to being coupledto the A/D converter 1160.

More detail regarding the photo sensor array 1158 and its operation tocapture frames of image data is described in more detail in U.S. patentapplication Ser. No. 14/717,112 (Attorney Docket No. 3271-2-071).

The term “image frame,” as used herein, may be a full image frame, abinned image frame, a sub-sampled image frame, or a window of any of afull, binned, or sub-sampled image frame.

As used herein, the term “full image frame” refers to an image framethat is captured when an entire photo sensor array 1158 is exposed andread out. Thus, a full image frame may include pixels corresponding toall of the photo sensors in the photo sensor array 1158.

As used herein, the term “binned image frame” refers to an image framethat is captured by simultaneously combining the photodiodes formultiple adjacent pixels to a single A/C converter (effectively creatinga single pixel with a larger photosensitive region comprising thephotosensitive regions of the combined pixels, but an overall lowerresolution for the image frame). Common binning may include combininggroups of two adjacent pixels horizontally, groups of two adjacentpixels vertically, and two-by-two groups of pixels. The resolutionvalues of the image capture parameter values for an image frame that isto be captured as a binned image frame will define the binning (howadjacent pixels are to be grouped).

As used herein the term “sub-sampled image frame” refers to an imageframe that is captured at a lower resolution utilizing a pattern offewer than all of the pixels applied across the full photo sensor, forexample every second pixel or every fourth pixel. The used pixels areread out while the un-used pixels are not read out or the data isignored. The resolution values of the image capture parameter values foran image frame that is to be captured as a sub-sampled image frame willdefine the sub-sampling ratio of pixels which are read and used versusun-used pixels.

As used herein the term “a window of an image frame” refers to a portionof a full image frame, a binned image frame or a sub-sampled image framethat is smaller than the full photo sensor array image, either byvertical cropping, horizontal cropping, or both. The portions of thepixels outside of the cropping may not be read-out. The image captureparameter values for an image frame that is to be captured as a windowedimage frame (full, binned, or sub-sampled) will define the horizontaland vertical cropping, as applicable.

It should be appreciated that binning, subsampling, and windowing may beperformed by the image sensor array 1158 at read-out such that theresulting image frame (full, binned, sub-sampled, and/or windowed) isthe image frame input to the pre-processing circuits 1176 a-n.

To enable digital values representative of illumination on pixels to betransferred very quickly from the A/D converters 1160 to thepre-processing circuits 1176 a-n (or written directly to the imagebuffer 1157), the wide bus logic 1198 may transfer the digital intensityvalues from all A/D converters 1160 to the pre-processing circuits 1176a-n (or the image buffer 1157) in parallel (e.g. the same clockingcycles transfer all digital intensity values from all A/D converters1160 to the pre-processing circuits 1176 a-n (or the image buffer 1157)simultaneously).

Stated another way, the wide bus logic 1198 may include transfer logicmodules, each implementing a channel for transfer of a digital intensityvalue from an A/D converter 1160 to the pre-processing circuits 1176 a-n(or the image buffer 1157), with the quantity of transfer logic modulesbeing equal to the quantity of A/D converters, and with each distincttransfer logic module being coupled to the output of one distinct A/Dconverter. Stated yet another way, the wide bus logic 1198 may implementa digital intensity value transfer bus (from the A/D converters 1160 tothe pre-processing circuits 1176 a-n (or the image buffer 1157)) that isas wide as the number of A/D converters 1160.

Alternatively, the width of the wide bus logic 1198 may be 50% of thenumber of A/D converters 1160, in which case it would take two buscycles to transfer all digital intensity values from all A/D converters1160 to the pre-processing circuits 1176 a-n or to the image buffer1157. Alternatively, the width of the wide bus logic 1198 may be 25% ofthe number of A/D converters 1160, in which case it would take four buscycles to transfer all digital intensity values from all A/D converters1160 to the pre-processing circuits 1176 a-n or to the image buffer1157. It should be noted that the width of the wide bus logic 1198 maybe any percentage of the number of columns of the photo sensor array.However, if an entire row of pixels is to undergo a simultaneousexposure period utilizing a quantity of A/D converters equal to thenumber of pixels in the row, but the wide bus logic 1198 is notsufficient to transfer digital intensity values from all A/D converters1160 simultaneously, the wide bus logic 1198 may includefirst-in-first-out (FIFO) buffers (one FIFO buffer for each A/Dconverter) for buffering digital intensity values prior to transfer tothe pre-processing circuits 1176 a-n or to the image buffer 1157.

The hardware gate logic 1175 includes multiple pre-processing circuits1176 a-n. The pre-processing circuits 1176 a-n may perform operationssuch as convolution, binning, sub-sampling, cropping and other imageprocessing functions on an image frame (full, binned, sub-sampled,and/or cropped) to generate one or more image data record 1161 a-n, eachof which is derived from the image frame or an image data record thatwas previously derived from the image frame.

Each pre-processing circuit 1176 a-n may receive as input either: i) animage frame (full, binned, sub-sampled, and/or cropped) receiveddirectly from the photo sensor array 1158 by way of the wide bus logic1198; or ii) an image data record 1161 a-n from the image buffer 1157which is the result of a different pre-processing circuit 1176 a-npreviously operating on an image frame (full, binned, sub-sampled,and/or cropped) received directly from the photo sensor array 1158 byway of the wide bus logic 1198.

It should be noted that one image frame (full, binned, sub-sampled,and/or cropped) may be input to multiple pre-processing circuits 1176a-n resulting in multiple image data records 1161 a-n being written tothe image buffer 1157 for the same frame of image data. Further, for aburst of multiple image frames (described herein), each image frame(full, binned, sub-sampled, and/or cropped) may be input to the same oneor more pre-processing circuits 1176 a-n or permutations of differentimage frames of the burst may be input to different subsets ofpre-processing circuits 1176 a-n, each subset including one or morepre-processing circuits 1176 a-n.

It should also be noted that one of the pre-processing circuits 1176 maysimply write the image frame (full, binned, sub-sampled, and/or cropped)to the image buffer 1157 as an image data record 1161 without performingsubstantive image processing (e.g. writing the intensity values receivedfrom the A/D converters 1160 for the image frame to the image buffer1157).

Image processing functions that may be performed by any of the imagepre-processing circuits 1176 a-n and the image data records 1161 a-nderived from each image frame (whether full, binned, sub-sampled, and/orwindowed and/or cropped) include: i) transfer of the image frame or awindow within an image frame (full, binned, cropped, or sub-sampled) asa resulting image data record 1161 a-n to the image buffer 1157; ii)cropping of an image frame (full, binned, cropped, or sub-sampled) andtransfer of the resulting image data record 1161 a-n to the image buffer1157; iii) binning an image frame (full, binned, cropped, orsub-sampled) and transfer of the resulting image data record 1161 a-n tothe image buffer 1157; iv) subsampling an image frame (full, binned,cropped, or sub-sampled) and transfer of the resulting image data record1161 a-n to the image buffer 1157; v) generating a rotation of an imageframe (full, binned, cropped, or sub-sampled) and transfer of theresulting image data record 1161 a-n to the image buffer 1157; vi)generating a convolution of an image frame (full, binned, cropped, orsub-sampled) and transfer of the resulting image data record 1161 a-n tothe image buffer 1157; and vii) generating a double convolution which isa second sequential convolution performed on the result of a previouslyperformed convolution of an image frame (full, binned, cropped, orsub-sampled) and transfer of the resulting image data record 1161 a-n tothe image buffer 1157. Each sequential convolution utilizes a differentdistinct kernel. Each of these image processing operations is describedin more detail herein.

The pre-processing circuits 1176 a-n may be implemented in hardware gatelogic 1175 to provide for image processing very quickly such thatprocessing by a pre-processing circuit 1176 a-n, and thereby generatingand storing in the image buffer 1157 one or more image data records 1161a-n may be performed during a limited amount of time that the imageframe is being read from the photo sensor array 1158 such that raw pixeldata (i.e., digital intensity values from the A/D converters 1160coupled to the image sensor array 1158) do not need to be stored inmemory (other than simple FIFO buffers) prior to being processed by thepre-processing circuits 1176 a-n.

The control circuitry 1159 may be any combination of hardware gate logicand/or a processor executing a code stored in a volatile or non-volatilememory. The control circuitry 1159 interfaces with the image capturecontrol and decode system 1132, the pre-processing circuits 1176 a-n,and the photo sensor array 1158.

In operation the control circuitry 1159 may receive, from the imagecapture control and decode system 1132 via an interface 1162 (such as abus), image capture parameter values for a burst of one or more imageframes (full, binned, sub-sampled, and/or cropped) to be sequentiallycaptured. As will be described in more detail herein, the image captureparameter values define, for the burst of one or more image frames to becaptured by the photo sensor, a quantity of image frames to besequentially captured (the burst of images) and, for each image withinthe burst: i) whether a full image frame, binned image frame,sub-sampled image frame, or a window of a full, binned, or sub-sampledimage frame is to be captured; ii) the binning or subsampling resolution(vertically and horizontally) and/or window cropping, if applicable;iii) an exposure setting; iv) a gain setting; and v) an indication of apermutation of one or more pre-processing functions to apply to theimage frame (full, binned, sub-sampled and/or windowed), includingpre-processing functions that are to be applied to an image data recordresulting from a previous pre-processing function being applied to theimage frame (full, binned, sub-sampled, and/or windowed).

In further operation, after receiving the image capture parametervalues, the control circuitry 1159 may, for each image frame to becaptured, set image capture settings to the image capture parametervalues for the image frame and, in response to a trigger signal from theimage sensor system package 1134, drive the photo sensor array 1158 tosequentially capture each of one or more image frames of the burst inaccordance with the image capture settings and without further triggersignal(s) from the image capture control and decode system 1132.

In more detail, the control circuitry 1159 adjusts the image capturesettings between the exposure periods for each sequentially capturedimage frame such that each captured image frame within the burst ofimage frames is captured with image capture settings specificallydefined for that image frame by the image capture control and decodesystem 1132. At least one of the multiple frames of image data may becaptured with a distinct value of at least one image capture parameter.

Each captured image frame (full, binned, sub-sampled, and/or windowed)may, under control of the control circuitry 1159, be input to selectedone or more pre-processing circuits 1176 a-n in accordance with theimage capture parameter values for purposes of performing thepre-processing functions previously described. Resulting image datarecords 1161 a-n are written to the image buffer 1157.

Further, the control circuitry 1159 may, for selected image data records1161 a-n in the buffer memory 1152, drive selected other pre-processingcircuits 1176 a-n to receive the selected image data record 1161 a-n andgenerate, and write to the image buffer 1157, an image data record 1161a-n which is derived therefrom.

Further yet, the control circuitry 1159 may, as requested by the imagecapture control and decode system 1132, provide certain image datarecords 1161 a-n (or portions of certain image data records 1161 a-n) tothe image capture control and decode system 1132 for further processingand decoding.

In one embodiment, the image capture module 1156 of the image capturecontrol and decode system 1132, when executed by the processor 1144 inconjunction with the hardware circuits 1148, controls image capture by:i) defining (or receiving from the decoder 1155) image capture parametervalues for a burst of one or more image frames to be sequentiallycaptured by the photo sensor array 1158 of the image sensor systempackage 1134 and the image processing to be performed on each imageframe; ii) initiating the capture of the sequence of one or more imageframes by the photo sensor array 1158 and the corresponding performanceof the image processing thereon by the pre-processing circuits 1176 a-nto generate image data records 1161 a-n, each of which is a derivativeof an image frame within the sequence of one or more image frames; andiii) controlling the illumination systems 1136 a-c to illuminate thebarcode within the field of view during capture of each frame of thesequence of one or more image frames. The image capture module 1156 mayfurther define, or receive from the decoder an indication of, which ofthe image data records, or portions of the image data records, are to beprovided to the decoder 1155 for decoding of the barcode.

As described, the image capture parameter values may define a quantityof image frames to be sequentially captured (the burst of images) and,for each image within the burst: i) whether a full image frame, binnedimage frame, sub-sampled image frame, or a window of a full, binned, orsubsampled image frame is to be captured; ii) the binning or subsamplingresolution (vertically and horizontally) and/or the windowing croppingfor the image frame to be captured if applicable; iii) an exposuresetting; iv) a gain setting, v) an indication of a permutation of one ormore previously described pre-processing functions to apply to the imageframe (full, binned, sub-sampled, and/or cropped) by the imagepre-processing circuits 1151 a-n within hardware circuits 1148 of theimage sensor system package 1134, including pre-processing functionsthat are to be applied to an image data records 1161 a-n resulting froma previous pre-processing function being applied to the image frame(full, binned, sub-sampled and/or cropped).

The exposure period may be the duration of time each pixel is exposed(i.e., the duration of time between the beginning of the exposure periodand the end of the exposure period).

The gain setting may be a gain value implemented for ensuring that thepixel intensity values (or binned pixel intensity values) utilize thedynamic range of the A/D converters 1160.

Initiating the capture of the sequence of one or more image frames of abarcode within a field of view of the photo sensor array 1158 mayinclude providing a single trigger signal to the control circuitry 1159of the image sensor system package 1134 to initiate the capture of thesequence of one or more image frames. Such a single trigger signal maybe provided after the image capture parameter values defining thesequence of image frames to be captured and pre-processing to beperformed by pre-processing circuits 1176 a-n within the image sensorsystem package 1134 have been provided to the control circuitry 1159such that the control circuitry 1159 may autonomously capture thesequence of image frames and drive the pre-processing circuits 1176 a-nto perform the applicable pre-processing in accordance with the imagecapture parameter values without further control having to be providedby the image capture control and decode system 1132.

Controlling the illumination systems 1136 a-c to illuminate the barcodewithin the field of view during capture of each frame of the sequence ofone or more image frames may comprise controlling illumination logic1150 within hardware circuits 1148.

In more detail, the illumination sub-systems 1136 a-c are coupled to thehardware circuits 1148 which providing power required for thelight-emitting diodes (LEDs) or other illumination sources to generateillumination under control of illumination logic 1150. Morespecifically, for each image frame to be captured by the photo sensorarray 1158, the image capture module 1156 provides illuminationparameters to the illumination logic 1150 which control the illuminationsettings to be used for capture of the image frame. More specifically,the illumination parameters may define such illumination settings as: i)identifying which of at least one of the illumination sub-systems 1136a-c are to be activated for the exposure period in which the image frameis captured; and ii) the intensity of illumination to be generated byeach of the illumination sub-systems 1136 a-c that are to be activated.In certain exemplary embodiments the intensity may be defined as: i) apercentage from zero percent (0%) to one hundred percent (100%)representing the percent of a maximum illumination intensity that can begenerated by the LEDs (or other illumination sources) of illuminationsub-system; ii) pulse-width-modulation (PWM) parameters representing thepercentage of time during the exposure period that maximum operatingpower is applied to the LEDs (or other illumination sources) of theillumination sub-system in a pulsing pattern; and iii) a percentagegreater than one hundred percent (100%) representing a power level to beapplied to the LEDs of an illumination sub-system if the LEDs are to beover-driven.

In certain embodiments, the illumination parameters may be provided tothe illumination logic 1150 for one or more image frames within a burstof image frames to be captured by the photo sensor array 1158 by theimage capture module 1156 writing the illumination parameters for eachframe to a distinct register within the illumination logic 1150.

During capture of each image frame of one or more image frames within aburst of image frames, the illumination logic 1150 sets the illuminationsettings for the image frame to conform to the illumination parametersfor the image frame by configuring power circuits of the hardwarecircuits 1148 to apply the applicable power to the applicableillumination sub-systems.

In one embodiment, the illumination logic is coupled to a flash signal1163 generated by the control circuitry 1159 of the image sensor systempackage 1134. The flash signal 1163 is configured to generate a signalindicating a start of each exposure period and an end of each exposureperiod, for each image frame captured by the image sensor 1158 within aburst of one or more image frames. In this embodiment the illuminationlogic may, for each image frame: i) set the illumination settings forthe image frame to conform to the illumination parameters for the imageframe by configuring power circuits of the hardware circuits 1148 toapply the applicable power to the applicable illumination sub-systems;ii) apply the applicable power to the applicable illumination sub-system1136 a-c when the flash signal 1163 indicates start of the exposureperiod for the image frame; iii) deactivate the power to theillumination sub-systems 1136 a-c when the flash signal 1163 indicatesthe end of the exposure period; and iv) repeat steps i-iii for the nextimage frame within the sequence utilizing the illumination parametersfor that next image frame within the sequence. The illuminationparameters may be considered image capture parameter values in additionto those image capture parameter values previously described.

The decoder 1155, when executed by the processor 1144, may: i) determinewhich of the one or more image data records 1161 a-n (or windows withinone or more image data records 1161 a-n) may be transferred from theimage buffer 1157 to the image capture control and decode system 1132;ii) determine a permutation of one or more pre-processing functions(performed by pre-processing circuits 1151 a-n) to apply to each of theone of the image data records 1161 a-n (or windows within one or moreimage data records 1161 a-n) to generate, and write to the buffer memory1152, image data records 1153 a-n (each of which is also a derivative ofthe one or more image frames (whether full, binned, or sub-sampled)captured by the photo sensor array 1158; iii) determine a permutation ofone or more pre-processing functions (performed by the image processingmodule 1154 when such code is executed by the processor 1144) to applyto each of the one of the image data records 1153 a-n (or windows withinone or more image data records 1153 a-n) to generate, and write to thebuffer memory 1152 additional (or replacement) image data records 1153a-n (each of which is also a derivative of the one or more image frames(full, binned, sub-sampled, and/or cropped) captured by the photo sensorarray 1158; and iv) decode the barcode present within the field of viewof the barcode reader and imaged within the one or more image frames(whether full, binned, or sub-sampled) captured by the photo sensorarray 1158 and represented by at least a portion of one of the imagedata records 1153 a-n derived from such an image frame.

Referring to FIG. 18B, exemplary operation of the decoder 1155 isdepicted in accordance with one embodiment. Step 1170 represents thedecoder 1155 and/or the image capture module 1156 determining the imagecapture parameter values for a burst of one or more image frames aspreviously described.

Step 1171 represents transferring one or more image data records 1161a-n (or portions of one or more image data records 1161 a-n) from theimage buffer 1157 to the image capture control and decode system 1132and establishing which, if any, pre-processing functions are to beperformed by image pre-processing circuits 1151 a-n and/or the imageprocessing module 1154.

Step 1172 represents selecting a final image data record 1153 fordecoding, which may include sampling final image data records 1153 a-nat step 1172 a and evaluating the sample image data records 1153 a-n atstep 1172 b.

Step 1173 represents decoding the selected image data record 1153. Thisoperation may include, based on the resulting image data records 1153a-n meeting or failing to meet certain criteria: i) driving imagepre-processing circuits 1151 a-n or the processing module 1154 toperform additional image processing operations, as previously describedon one or more of the image data records 1153 a-n within the buffermemory 1152 (or on a window of, a binning of, or a sub-sampling of eachof one or more image data records 1153 a-n) and write resultingadditional, or replacement, image data records 1153 a-n to the buffermemory 1152; ii) driving the transfer of one or more additional imagedata records 1161 a-n (full, windowed, binned, or sub-sampled) to theimage capture control and decode system 1132 (without obtaining anadditional burst of one or more image frames) and, optionally drivingperformance of additional pre-processing operations on the additionalimage data records 1161 a-n by the pre-processing circuits 1151 a-n orthe image processing module 1154; and/or iii) driving capture of one ormore additional bursts of image frames (whether full, windowed, binnedor sub-sampled), resulting in one or more additional image data records1161 a-n being written to the image buffer 1157, and then drivingtransfer of one or more of the additional image data records 1161 a-n(full, windowed, binned or sub-sampled), but not necessarily all of theadditional image data records 1161 a-n in the image buffer 1157, to theimage capture control and decode system 1132 and, optionally drivingperformance of additional pre-processing operations on the additionalimage data records 1161 a-n by the pre-processing circuits 1151 a-n orthe image processing module 1154. This aspect of the operation may berepeated until at least one of the image data records 1153 a-n isdecodable by the processor 1144 operating the decoder 1155.

The pre-processing circuits 1151 a-n, similar to pre-processing circuits1176 a-n, may be implemented within hardware circuits 1148. Thepre-processing circuits 1151 a-n may perform operations such asconvolution, binning, sub-sampling and other image processing functionson image data records 1161 a-n (each of which is provided by the imagesensor system package 1134 via the interface 1162 and each of which is,or is a derivative of, an image frame (full, binned, sub-sampled, and/orcropped) captured by the photo sensor array 1158) to generate, and writeto the buffer memory 1152, one or more image data record 1153 a-n.

Each pre-processing circuit 1151 a-n may receive as input either: i) animage data record 1161 a-n (or a window of, a binning of, or asub-sampling of, an image data record 1161 a-n) directly from the imagesensor system package 1134 by way of the interface 1162; or ii) an imagedata record 1153 a-n from the buffer memory 1152 which is the result ofa different pre-processing circuit 1151 a-n previously operating on animage data record 1161 a-n (or a window of, a binning of, or asub-sampling of, an image data record 1161 a-n) received from the imagesensor system package 1134 by way of the interface 1162.

It should be noted that one image data record 1161 a-n (or a window of,a binning of, or a sub-sampling of, an image data record 1161 a-n) maybe input to multiple pre-processing circuits 1151 a-n, resulting inmultiple image data records 1153 a-n being written to the buffer memory1152 for the same image data record 1161 a-n (or a window of, a binningof, or a sub-sampling of, an image data record 1161 a-n).

Further, for a burst of multiple image frames the image data record 1161a-n (or a window of, a binning of, or a sub-sampling of, an image datarecord 1161 a-n) received and processed by the pre-processing circuits1151 a-n may represent different image frames within the burst capturedby the photo sensor array 1158. The image data records 1161 a-n (or awindow of, a binning of, or a sub-sampling of, an image data record 1161a-n) received and processed by the pre-processing circuits 1151 a-n maybe the result of applying the same pre-processing functions bypre-processing circuits 1176 a-n to each of multiple image frames withinthe burst.

Each image data record 1161 a-n (or a window of, a binning of, or asub-sampling of, an image data record 1161 a-n) received may be input tothe same one or more pre-processing circuits 1151 a-n or may be input todifferent subsets of pre-processing circuits 1151 a-n, each subsetincluding one or more pre-processing circuits 1151 a-n.

It should also be noted that one of the pre-processing circuits 1151 a-nmay simply write the image data record 1161 a-n (which may be an imageframe captured by the image sensor array 1158 (full, binned,sub-sampled, and/or cropped) without previous processing bypre-processing circuits 1176 a-n) to the buffer memory 1152 withoutperforming substantive image processing.

Again, operations performed by, and derivatives of the frame of imagedata produced by, the pre-processing circuits 1151 a-n may include: i)transfer of the image data record 1161 a-n (or a window, binning, orsub-sampling of the image data record 1161 a-n) to the buffer memory1152 as an image data record 1153 a-n without substantive processing;ii) binning of an image data record 1161 a-n (or a window orsub-sampling of the image data record 1161 a-n) and writing the resultto the buffer memory 1152 as an image data record 1153 a-n; iii)subsampling of an image data record 1161 a-n (or a window, binning, orsub-sampling of the image data record 1161 a-n) and writing the resultto the buffer memory 1152 as an image data record 1153 a-n; iv)generating a rotation of an image data record 1161 a-n (or a window of,a binning of, or sub-sampling of the image data record 1161 a-n) andwriting the result to the buffer memory 1152 as an image data record1153 a-n; v) generating a convolution of an image data record 1161 a-n(or a window or sub-sampling of the image data record 1161 a-n) andwriting the result to the buffer memory 1152 as an image data record1153 a-n; and vi); generating a double convolution, which is a secondsequential convolution performed on the result of a previously performedconvolution, of an image data record 1161 a-n (or a window orsub-sampling of the image data record 1161 a-n) and writing the resultto the buffer memory 1152 as an image data record 1153 a-n. Eachsequential convolution utilizes a different distinct kernel.

The pre-processing circuits 1151 a-n may be implemented in hardwarecircuits 1148 to provide for image processing very quickly such thatprocessing by a pre-processing circuit 1151 a-n, and thereby generatingand storing in the buffer memory 1152 one or more image data records1153 a-n, may be performed during the limited amount of time that theimage data records 1161 a-n are being transferred to the image capturecontrol and decode system 1132 via the interface 1162 without requiringstorage of the transferred image data records 1161 a-n in memory priorto pre-processing by pre-processing circuits 1151 a-n.

The image processing module 1154, when executed by the processor 1144may perform similar pre-processing functions as performed by thepre-processing circuits 1176 a-n and pre-processing circuits 1151 a-n.

In more detail, the image processing module 1154 may perform operationssuch as convolution, binning, sub-sampling and other image processingfunctions on image data records 1153 a-n (each of which is has beenpreviously written to the buffer memory 1152 and each of which is, or isa derivative of, an image frame (full, binned, sub-sampled, and/orcropped) captured by the photo sensor array 1158) to generate, and writeto the buffer memory 1152, one or more additional, or replacement, imagedata record 1153 a-n.

The image processing module 1154 may receive as input an image datarecord 1153 a-n (or a window of, a binning of, or a sub-sampling of, animage data record 1153 a-n) from the buffer memory 1152.

It should be noted that one image data record 1153 a-n (or a window of,a binning of, or a sub-sampling of, an image data record 1153 a-n) maybe input to multiple pre-processing functions of the image processingmodule 1154 resulting in multiple additional, or replacement, image datarecords 1153 a-n being written to the buffer memory 1152 for the sameimage data record 1153 a-n (or a window of, a binning of, or asub-sampling of, an image data record 1153 a-n).

Further, for a burst of multiple image frames, the image data record1153 a-n (or a window of, a binning of, or a sub-sampling of, an imagedata record 1153 a-n) received and processed by the image processingmodule 1174 may represent different image frames within the burstcaptured by the photo sensor array 1158. The image data records 1153 a-n(or a window of, a binning of, or a sub-sampling of, an image datarecord 1153 a-n) received and processed by the image processing module1154 may be the result of applying the same pre-processing functions toeach of multiple image frames within the burst.

Each image data record 1153 a-n (or a window of, a binning of, or asub-sampling of, an image data record 1153 a-n) may be input to the sameone or more pre-processing functions of the image processing module 1154or may be input to different subsets of pre-processing functions ofimage processing module 1154, each subset including one or morepre-processing functions.

Again, operations performed by, and derivatives of the frame of imagedata produced by, the image processing module 1154 may include: i)binning of an image data record 1153 a-n (or a window or sub-sampling ofthe image data record 1153 a-n) and writing the result to the buffermemory 1152 as an additional, or replacement, image data record 1153a-n; ii) subsampling of an image data record 1153 a-n (or a window,binning, or sub-sampling of the image data record 1153 a-n) and writingthe result to the buffer memory 1152 as an additional, or replacement,image data record 1153 a-n; iii) generating a rotation of an image datarecord 1153 a-n (or a window of, a binning of, or sub-sampling of theimage data record 1153 a-n) and writing the result to the buffer memory1152 as an additional, or replacement, image data record 1153 a-n; iv)generating a convolution of an image data record 1153 a-n (or a windowor sub-sampling of the image data record 1153 a-n) and writing theresult to the buffer memory 1152 as an additional, or replacement, imagedata record 1153 a-n; and v); generating a double convolution, which isa second sequential convolution performed on the result of a previouslyperformed convolution, of an image data record 1153 a-n (or a window orsub-sampling of the image data record 1153 a-n) and writing the resultto the buffer memory 1152 as an additional, or replacement, image datarecord 1153 a-n. Again, each sequential convolution utilizes a differentdistinct kernel.

Further, as previously discussed, the decoder may additionally, prior tothe capture of the burst one or more image frames by the photo sensorarray 1158, based on analysis of image data records 1153 a-n derivedfrom one or more previous bursts of one or more image frames (full,binned, sub-sampled, and/or cropped) define any permutation of, or allof, the image capture parameter values previously discussed for theburst (or next burst) of one or more image frames.

Again, such image capture parameter values define a quantity of imageframes to be sequentially captured (the burst of images) and, for eachimage within the burst: i) whether a full image frame, binned imageframe, or sub-sampled image frame is to be captured; ii) the binning orsubsampling resolution (vertically and horizontally) for the image frameto be captured if applicable; iii) an exposure setting; iv) a gainsetting; and v) an indication of a permutation of one or morepre-processing functions to apply to the image frame (full, binned, orsub-sampled), including pre-processing functions that are to be appliedto an image data record resulting from a previous pre-processingfunction being applied to the image frame (whether full, binned, orsub-sampled).

The image capture parameter values may be provided directly by thedecoder 1155 to the control circuitry 1159 of the image sensor systempackage 1134 via the interface 1162 or may be provided to the imagecapture module 1156 which in turn provides the image capture parametervalues to the control circuitry 1159 of the image sensor system package1134 via the interface 1162.

As discussed, the image sensor system package 1134 and the image capturecontrol and decode system 1132 may be included in two separate packagescommunicating over the interface 1162.

FIG. 18C shows the interface 1162 between the image sensor systempackage 1134 and the image capture control and decode system 1132. Theinterface 1162 may comprise a control link 1174 that may be a two-wayserial control channel enabling the image capture control and decodesystem 1132 to: i) set parameters (e.g., the quantity of images to becaptured in a burst, exposure period for each frame, gain setting foreach frame, resolution setting for each frame, or the like); ii) selectwhich image pre-processing circuits 1176 a-n are to be applied to eachcaptured frame, thereby determining the characteristics of the imagedata records 1161 a-n written to the image buffer 1157; and iii) selectimage data records 1161 for transfer to the image capture control anddecode system 1132.

The interface 1162 may further include a trigger signal 1179 controlledby the image capture control and decode system 1132 to initiateautonomous capture of a burst of one or more image frames and subsequentimage pre-processing and writing of image data records 1161 a-n to theimage buffer 11573.

The interface 1162 may further include a flash signal 1163 which isoutput by the image sensor system package 1134 to signal the start ofeach exposure period and the end of each exposure period. The imagecapture control and decode system 1132 may control the illuminationsystem 1136 based on the flash signal 1163. More particularly, the imagecapture control and decode system 1132 may activate the selectedillumination system(s) 1136 a-n at the selected intensities during theexposure of each applicable frame based on the flash signal 1163indicating start of the exposure period. The illumination system 1136may be configured to deactivate the exposure illumination when the flashsignal 1163 indicates end of the exposure period activate the targetingillumination during the time period between exposure periods ofsequential frames.

The interface 1162 may further include data lines 1177 that may beparallel or serial and that provide for the transfer of image datarecords 1161 from the image sensor system package 1134 to the imagecapture control and decode system 1132.

The interface 1162 may further include data control signals 1178 whichmay be signals to indicate the time each pixel value is valid on a dataline, and indicate location of the pixel within the image arrayrepresented by the image data records (e.g., horizontal blanking,vertical blanking).

It should be appreciated that the barcode image is captured, processed,and stored in the first package (i.e., the image sensor system package1134) at a much faster speed and may then be transferred to the secondpackage (the image capture control and decode system 1132) for decodingat a slower speed. The image buffer 1157 may be large enough to hold anentire frame of image data (in combination with image data records 1161a-n derived from the frame of image data), and the entire frame of imagedata and/or combinations of one or more image data records 1161 a-n maybe read-out of the image buffer 1157 after the entire frame of imagedata is put into the image buffer 1157.

In one embodiment, instead of transferring all frames of image datacaptured in a burst, a subset of the multiple frames of image datagenerated in a burst may be transferred to the image capture control anddecode system 1132 at a speed commensurate with transfer by theinterface 1162 at the second or slower speed.

Referring to FIG. 18D in conjunction with FIGS. 18A-18C, an exemplaryoperation of certain components of the barcode reader 1130 arerepresented in accordance with an embodiment of the present invention.

Step 1182 represents defining image capture parameter values for a burstof image frames to capture. In more detail, defining the image captureparameter values may comprise the image capture module 1156 or thedecoder 1155 defining the quantity of image frames to capture (full,binned, sub-sampled, and/or windowed) in sequence at sub-step 1184 andfor each frame in the sequence, defining: i) image capture parametervalues for the image frame such as the exposure period, gain settings,and/or resolution settings (if capturing a binned or sub-sampled imageframe) at sub-step 1186 a; ii) the image processing functions to whichthe image frame will be subject by pre-processing circuits 1176 a-n forpurposes of defining the image data records 1161 a-n to be written tothe image buffer 1157 at sub-step 1186 b; and/or iii) the illuminationsettings for the image frame at sub-step 1186 c.

The illumination settings may be defined as a combination of: i)identifying which illumination sub-systems 1136 a-c are to be used forcapturing the image frame, and ii) for each illumination sub-system 1136a-c, the percentage of full intensity at which the illumination is to beactivated.

More specifically, the status of each illumination sub-system 1136 a,1136 b, 1136 c (i.e., active or non-active and, if active, the intensitylevel) may be different for each image frame captured. For example, whentwo sequential frames are captured, the first frame may be captured withillumination sub-system 1136 a active while the second frame may becaptured with illumination sub-system 1136 b active.

Further, the selection of image capture parameter values, including thenon-active and active illumination sub-systems 1136 a, 1136 b, 1136 cfor capturing images, may be based on characteristics of the image datarecords 1161 a-n in the image buffer 1157 or image data records 1153 a-nin the buffer memory 1152 from previously captured image frames.

Step 1188 represents: i) transferring the image capture parameter valuesfor the image capture burst to the control circuitry 1159 of the imagesensor system package 1134 utilizing the bi-directional data controllink 1174 of the interface 1162; and ii) configuring the illuminationlogic to drive the applicable illumination sub-system 1136 a-c inaccordance with the illumination parameters during an exposure time forcapture of each image frame. It should be appreciated that image captureparameter values transferred to the control circuitry 1159 do not needto include parameter values related to illumination when illumination iscontrolled by the hardware gate logic 1175 within the image sensorsystem package 1134. However, in an embodiment wherein the illuminationlogic 1150 controlling illumination sub-systems 1136 a-n is within theimage sensor system package 1134 (not shown on FIG. 18A) then theillumination parameter values would be transferred to the controlcircuitry 1159.

Step 1190 represents driving the single trigger signal to the controlcircuitry 1159 to initiate capture of the burst of one or more imageframes, and subsequent image pre-processing and writing of image datarecords 1161 a-n to the image buffer 1157 which, as discussed may bewithout further control by the image sensor system package 1134.

Step 1192 represents the illumination logic 1150 receiving from thecontrol circuitry 1159 of the image sensor system package 1134, for eachimage frame of the burst, a flash signal 1192 a-c indicative of theexposure period commencement and termination for the image frame andactivating the illumination system 1136 in accordance with theillumination settings applicable to that image frame as defined at step1186 c.

Step 1194 represents activating targeting illumination after capturingthe burst of image frames for purposes of projecting a targeting patternof illumination into the field of view to assist the operator of thebarcode reader in maintaining the desired barcode within the field ofview of the barcode reader in case an additional burst of one or moreimage frames is required. After the barcode within the field of view 106has been decoded the targeting illumination may be deactivated.

Step 1196 represents selecting which image data records 1161 a-n (orselected portions or windows within each image data record 1161 a-n) areto be transferred from the image buffer 1157 to the image capturecontrol and decode system 1132. More specifically, the decoder 1155 orthe image capture module 1156 may obtain portions (e.g., samples) of oneor more image data records 1161 a-n at sub-step 1196 a and evaluate eachfor the quality of the image of the barcode within the image data recordat sub-step 1196 b to select one or more image data records 1161 a-n,but fewer than all image data records 1161 a-n, to transfer from theimage buffer 1157 to the image capture control and decode system 1132for decoding.

The image data records 1161 a-n being transferred may have the bestquality image of the barcode or other characteristics of the image ofthe barcode which are likely to result in a decodable barcode image. Forexample, the quality of an image of a barcode may be measured in termsof the contrast between light cells and dark cells within the barcode. Abarcode image having relatively high contrast between dark cells andlight cells may be considered to have higher quality than a barcodeimage having relatively low contrast between dark cells and light cells.

The superior contrast profile may mean at least one of: (i) greatermaximum amplitude between the portions of the image within the subsetthat are dark marks of the barcode and the portions of the image withinthe subset that are light marks of the barcode; and (ii) more distincttransitions between portions of the image within the subset that aredark marks of the barcode and the portions of the image within thesubset that are light marks of the barcode.

The terms “dark cells” and “light cells” are used herein becausebarcodes have traditionally been printed with ink. This gives barcodesthe appearance of having dark cells (the portion that is printed withink) and light cells (the unprinted substrate background, typicallywhite). However, with direct part mark technology, ink is not alwaysused and other techniques (e.g., laser/chemical etching and/or dotpeening) may be used instead. Such techniques may be utilized to createa barcode by causing different portions of a substrate to have differentreflective characteristics. When these different portions of thesubstrate are imaged, the resulting barcode image may have theappearance of including dark cells and light cells. Therefore, as usedherein, the terms “dark cells” and “light cells” should be interpretedas applying to barcodes that are printed with ink as well as barcodesthat are created using other technologies.

The contrast between the dark cells and the light cells in a barcode maybe a function of illumination. Ideally, it is desirable to provideillumination that is consistent across the barcode and of intensity suchthat the exposure of the image yields both dark cells and light cellsthat are within the dynamic range of the photo sensor array 1158. Thisyields better contrast than any of the following: (i) a dimly litbarcode; (ii) a brightly lit barcode wherein the image is washed outbeyond the dynamic range of the photo sensor array 1158; (iii) anunevenly lit barcode with bright washed out spots; or (iv) a barcodeilluminated with illumination that is not compatible with thereflectivity characteristic(s) of the cells of the barcode. An exampleof (iv) is that illumination directed from the sides of the field ofview yields a higher contrast image of a barcode formed by etchingtechnology than does illumination parallel to the optical axis.

If the quality of a window of images is measured in terms of contrast,determining the selected illumination system configuration may includedetermining which window image of the plurality of window images has thehighest contrast between light and dark cells of the barcode, anddetermining which configuration of the plurality of illumination systems1136 a-c was activated when the window image having the highest contrastwas captured.

In one embodiment, each of the image data records 1161 a-n which aretransferred to the image capture control and decode system 1132 may bewritten to the image buffer 1157 as image data records 1153 a-n withoutfurther image processing. In another embodiment, the imagepre-processing circuits 1151 a-n may perform image processing andwriting of resulting image data records 1153 a-n to the buffer memory1152 as previously discussed.

Also, as previously discussed, one of the pre-processing circuits 1176a-n may simply write input data as an image data record 1161 a-n to theimage buffer 1157 without additional substantive processing.

As such, the structure depicted in FIG. 18A enables an image frame, ascaptured by the photo sensor array 1158, to be written as an image datarecord 1161 to image buffer 1157 without substantive processing thensubsequently transferred to the image capture control and decode system1132 where it either: i) undergoes image pre-processing by one or morepre-processing circuits 1151 a-n, resulting in one or more image datarecords 1153 a-n being written to the image buffer 1157 as a result ofsuch pre-processing; or ii) is written to the image buffer 1157 as animage data record 1153 a-n without pre-processing by either thepre-processing circuits 1151 a-n or the pre-processing circuits 1151a-n.

The structure depicted in FIG. 18A also enables an image frame, ascaptured by the photo sensor array 1158, to undergo image pre-processingutilizing one or more pre-processing circuits 1151 a-n and to be writtento the image buffer 1157 as one or more image data records 1161 a-n andthen have one or more of the image data records 1161 a-n transferred tothe image capture control and decode system 1132 where the transferredimage data records 1161 a-n are: i) written to the image buffer 1157 asimage data records 1153 a-n without further pre-processing; or ii)subjected to further pre-processing by image pre-processing circuits1151 a-n, resulting in writing of image data records 1153 a-n to theimage buffer 1157.

Further, as discussed, the image processing module 1174 may undertakeprocessing of one or more image data records 1153 a-n to modify theimage data records and/or generate additional, or replacement, imagedata records from one or more image data records 1153 a-n. As such, anyimage data record 1153 a-n may be processed by the image processingmodule 1174 prior to being subjected to decoding, whether it is: i)representative of the image frame captured by the photo sensor array1158 without substantive processing by either the pre-processingcircuits 1176 a-n or the pre-processing circuits 1151 a-n; ii)pre-processed by one of the pre-processing circuits 1176 a-n but withoutfurther substantive pre-processing by one of the pre-processing circuits1151 a-n; iii) not substantively processed by one of the pre-processingcircuits 1176 a-n but substantively pre-processed by one of thepre-processing circuits 1151 a-n; or iv) substantively pre-processed byboth one of the pre-processing circuits 1176 a-n and one of thepre-processing circuits 1151 a-n.

Examples of pre-processing will be explained hereafter. The followingexamples of pre-processing may be: i) performed by the pre-processingcircuits 1176 a-n on a frame of image data received from the photosensor array 1158 to generate image data records 1161 a-n, which are theimage frame or a derivative of the image frame, to be written to theimage buffer 1157; and ii) performed by the pre-processing circuits 1151a-n and/or the image processing module 1174 (executed by the processor1144) on an image data record 1161 a-n transferred from the image buffer11573 to the image capture control and decode system 1132 for generatingan image data record 1153 a-n which may be the original image frame or aderivative of the original image frame.

In one embodiment, no image processing may be performed such that theimage data record may be the image frame (whether full, windowed,binned, or sub-sampled) without substantive processing.

In another embodiment, portions of the image frame may be croppedhorizontally or vertically such that the image data record may be awindowed portion of the image frame (whether full, binned orsub-sampled).

In another embodiment, the image data record may be a lower resolutionframe of the original image data. One of the pre-processing circuits maybin, or average, two or more pixel intensity values to generate a singleintensity value representative of a theoretical pixel that encompassesthe size of all of the pixels that provided values that were binned oraveraged. Multiple image data records can be generated from the sameframe of image data at different resolutions.

In another embodiment, binarization may be performed. The binarizationmay involve comparing the intensity value of each pixel, or theintensity value resulting from the binning of a group of pixels, to athreshold. If it is greater than (or equal to) the threshold, theintensity value may be converted to a first binary value, and if it isless than (or equal to) the threshold, the intensity value may beconverted to a second binary value. The threshold may be common acrossall pixels (or binned pixel groupings) or may be different for differentpixels (or binned pixel groupings). The threshold value applied to anypixel (or binned pixel groupings) may be dynamic (e.g., the thresholdvalue may be calculated based on the intensity values previouslyoperated on during the binarization process).

In another embodiment, a minimum/maximum processing technique utilizinga 3×3 kernel may be applied to any array of pixel intensity values orany array of binned or subsampled array of intensity values. It may beapplied across the entire frame of image data (or an image data record)or to only a cropped section of the frame of image data (or an imagedata record). Of the 9 intensity values of each 3×3 kernel, the maximumintensity value or the minimum intensity value is determined and writtento the image data record in substitution for the intensity value of thecenter cell of the kernel.

In another embodiment, convolution kernel masking may be performed. Inthis image processing technique, a kernel mask, such as the 3×3 kernelmask.

In another embodiment, a rotation may be performed on an array of pixelvalues. More specifically, each intensity value for selected columns ofthe array (e.g. 3, 5, 7) may be extracted and used for intensity valuesof adjacent rows within an image data record. The selected columns maybe adjacent columns or may be a fraction of the columns, evenly spaced,across all or a portion of the array. The array may be the image data(full, binned, sub-sampled, and/or windowed).

It should be appreciated that using one or more of the above processingtechniques, image data records can be generated from the original imageframe or image data records that have already been generated from theoriginal image frame. Multiple processing techniques may be applied tothe same frame of image data (or image data record) to result indifferent image data records derived therefrom, and the processingtechniques may be applied in any order. Each of the above preprocessingtechniques is described in more detail in U.S. patent application Ser.No. 14/717,112.

Sets of image data records may be generated from one or more imageframes captured in a single sequence or in multiple sequences, and maybe generated by a combination of the pre-processing circuits 1176 a-n ofthe image sensor system package 1134, pre-processing circuits 1151 a-nof the image capture control and decode system 1132, and/or theprocessor 1144 of the image capture control and decode system 1132executing the image processing module 1174. For example, an image datarecord may be a frame of image data which may be an array of pixelintensity values, each pixel intensity value representing the intensityof illumination accumulating on the photo sensor pixel over the exposureperiod. Different image data records may each be a frame of image datacaptured using a different exposure period, using a different gainsetting, or using a different exposure illumination active during adifferent exposure period, each as described in more detail in U.S.patent application Ser. No. 14/717,122.

In one embodiment, communication of decoded data obtained from an imageof a barcode with a host computer may require that a barcode reader1130: i) authenticate itself to the host computer as a trustedaccessory; and ii) communicate using a communication protocol that isoperable after the barcode reader 1130 has authenticated to the hostcomputer as a trusted accessory (i.e., after obtaining status of atrusted accessory or device to the host computer). More specifically, atleast one of the host computer and the barcode reader 1130 may notcommunicate using the communication protocol until mutual authenticationof the barcode reader 1130 and the host computer as a trusted entity issuccessfully completed.

In this embodiment, the barcode reader 1130 may further includeaccessory protocol control code 1164 and an authentication system 181.The accessory protocol control code 1164 may be stored in the memory1146 and executed by the processor 1144. The accessory protocol controlcode 1164, when executed by the processor 1144, enables communicationwith an operating system of the host computer and provision of thedecoded data of the barcode image to an application operating on thehost computer using an accessory communication protocol. The accessoryprotocol control code 1164 may implement a communication protocolspecific to the host computer when communicating with the host computer.

Referring to FIG. 18A, the authentication system 181 may be includedwithin a combination of the hardware circuits 1148 and memory 1146(including a code executed by the processor 1144) or may be a separatepackage which is part of the I/O peripheral systems 1138 and coupled tothe hardware circuits 1148 and including its own processor 184 (e.g. aco-processor). The authentication system 181 may include a processor 184and a memory for storing a private encryption key 182 and anauthentication process 183 for execution by the processor 184. Theauthentication system 181 is configured to receive an authenticationchallenge from a host computer (e.g., a remote device), subject theauthentication challenge to an authentication algorithm to obtain anauthentication response, and send the authentication response inresponse to the authentication challenge to the host computer. Theauthentication response identifies the barcode reader 1130 as a trustedaccessory to the host computer.

FIG. 19A is a ladder diagram representing an authentication procedurefor authenticating a barcode reader 1130 to a host computer as a trustedaccessory in accordance with one embodiment. The host computer and thebarcode reader 1130 utilizing the authentication system 181 establishmutual authentication using an authentication protocol. Anyauthentication protocol that is currently available or that will bedeveloped in the future may be used for this purpose. An exampleauthentication procedure will be explained with reference to FIG. 19Abut it should be noted that the procedure shown in FIG. 19A is providedas an example, and any other authentication procedure may be performedto establish a mutual authentication between the barcode reader 1130 andthe host computer. The host computer sends a request for an accessoryidentification at step 1202. This request may be sent when acommunication link is first established between the barcode reader 1130and the host computer, which may be at: i) a connection of thepoint-to-point interface (e.g., a UART, USB, or similar connection)utilizing the power/data contacts; ii) a formation of a wirelesspoint-to-point link (e.g., a formation of a Bluetooth (IEEE 802.15),Wi-Fi Direct, or a similar link); or iii) a formation of a TCP/IPconnection over a Wi-Fi (IEEE 802.11) and/or Ethernet or other IPenabled network; or iv) a similar initial connection.

In response to the request, the processor 1144 of the barcode reader1130 may query the authentication system 181 for an accessory identifierat step 1204. The accessory identifier may be generated by theauthentication system 181 and/or may be a digital certificate.

The authentication system 181 may then return the accessory identifierto the processor 1144 of the barcode reader 1130 at step 1206.Communication between the processor 1144 and the authentication system181 (which may be a co-processor) may be performed by way ofInter-Integrated Circuit (I2C) communication over an internal buscomponent of the hardware circuits 1148.

The processor 1144 of the barcode reader 1130 may then return theaccessory identifier to the host computer over a communication link atstep 1208.

After validating the accessory identifier, the host computer may send anidentification challenge to the processor 1144 of the barcode reader1130 over the communication link at step 1210. The identificationchallenge may be a random number encrypted with a public encryption keyof the digital certificate.

The processor 1144 may then present the authentication challenge to theauthentication system 181 via an internal bus at step 1212.

The authentication system 181 may then generate and return anauthentication challenge response to the processor 1144 via the internalbus at step 1214. Step 1214 may include decrypting the authenticationchallenge using its private encryption key 182 and an authenticationprocess 183 (e.g., a predetermined encryption/decryption algorithm) torecover the random number and return the random number to the hostcomputer. The authentication challenge response may be encrypted usingthe public key of the host private/public key pair.

The processor 1144 may then provide the authentication challengeresponse to the host computer via the communication link at step 1216.

The host computer may then determine at step 1218 whether the barcodereader 1130 is a trusted accessory based on the authentication challengeresponse (i.e., whether the random number returned by the barcode reader1130 matches the original random number provided by the host computer).

If the barcode reader 1130 has properly authenticated as a trustedaccessory, the host computer may authorize communication with thebarcode reader 1130 over the communication link at step 1220.

FIGS. 19B and 19C depict example packet formats for communicationbetween a barcode reader 1130 and a host computer. The barcode reader1130 and the host computer may exchange data packets 1222 d and controlpackets 1222 c over a communication link in accordance with acommunication protocol. The communication of packets may followauthentication between the barcode reader 1130 and the host computer asa trusted accessory. The communication protocol (i.e., the accessoryprotocol code) used between the barcode reader 1130 and the hostcomputer may be a non-proprietary communication protocol or aproprietary communication protocol (such as the iPod® Accessory Protocol(iAP or iAP2) or the like). When communicating using a communicationprotocol (either proprietary or non-proprietary), the decoded image datamay be encapsulated in a data frame. For example, the encapsulation ofthe decoded image data in a data frame may be in conformity with iAP oriAP2.

The communication protocol implemented between the processor 1144 of thebarcode reader 1130 executing the accessory protocol control code 1164and the processor of the host computer define a packet format forcontrol packets 1222 c and data packets 1222 d. A packet 1222 c, 1222 dmay include a header 1226 c, 1226 d and control packet content/data 1230c, 1230 d, respectively. The header 1226 c, 1226 d may include acontrol/data designation 1224 c, 1224 d, respectively, which identifieswhether the packet is a control packet 1222 c or a data packet 1222 d.The header 1226 d of a data packet 1222 d may also include aspecification ID 1228, which is a unique identifier that is assigned tothe barcode reader 1130 and that identifies the type of specificationsof data 1230 d included in the packet 1222 d (i.e., the specificationsto which the data 1230 d will conform).

If the control/data designation 1224 c, 1224 d of a packet provided bythe barcode reader 1130 to the host computer indicates that the packetis a control packet (control/data designation 1224 c), the packet isdelivered to the operating system of the host computer. If thecontrol/data designation 1224 c, 1224 d of a packet provided by thebarcode reader 1130 to the host computer indicates that the packet is adata packet (control/data designation 1224 d), the specification ID 1228identifies the type of specifications of data 1230 d included in thepacket 1222 d (i.e., the specifications to which the data 1230 d willconform), and the host computer (more specifically, the operating systemof the host computer) delivers the data packet 1222 d to an applicationoperating on the host computer based on predefined criteria. Thepredefined criteria may be that the application running on the processorof the host computer is identified as an application designated toaccept data packets with the assigned specification ID 1228 and iscapable of processing the data 1230 d conforming with the specificationsassociated with the assigned specification ID 1228.

If the proprietary communication protocol is iAP2, the specification ID1228 is assigned by Apple to the model of the barcode reader 1130 whenthe barcode reader is certified as a made-for-iPhone, -iPod, -iPad, orsimilar device and the specification to which data 1230 d is provided bythe model of the barcode reader 1130 conform.

The same applies to the packets transmitted from the host computer tothe barcode reader 1130. When a packet 1222 c, 1222 d is communicatedfrom the host computer to the barcode reader 1130 over the wirelesscommunication link, control packets 1222 c may be used by the accessoryprotocol control code 1164 and data packets 1222 d may be used by otherportions of the software or firmware in the barcode reader 1130. Forexample, the applications running on the host computer may sendconfiguration commands to the barcode reader 1130. From the perspectiveof the accessory protocol code, those commands are just data, and otherportions of the barcode reader 1130 that use that data may recognize itas configuration commands.

As an alternative to including the authentication system 181 within thebarcode reader 1130, the barcode reader 1130 may still include theaccessory protocol control code 1164; however, the authentication system181 may be within an accessory which attaches to the barcode reader 1130such as the docking stations 1300, 1400, 1600, 2100, 2000, and 2400.

FIG. 20A depicts a first embodiment of circuitry 410 which may beimplemented in any of the docking stations referenced above. FIG. 20Adepicts the barcode reader 1130 being coupled to the circuitry 410 ofthe docking station via a connection 406 which may be the connectionbetween the power/data contacts of the barcode reader 1130 and the powerdata contacts of the docking station.

The circuitry 410 includes a first power data interface (barcodeinterface) 412, a second power/data interface (USB interface) 428, and awireless interface 416. The circuitry 410 may also include a processor420, memory 423, the authentication system 181, and power interfacecircuits 414. The memory 423 may include a point-to-point interfacedriver 422 for point-to-point communications between the barcodereader/the host computer and the circuitry 410, a relay code 427 forrelaying data between the barcode reader/the host computer and thecircuitry 410, and an RF circuit driver for wireless communicationbetween the barcode reader/host computer and the circuitry 410.

The first power/data interface (barcode interface) 412 may provide powerand serial communication between the circuitry 410 and the barcodereader 1130 through the power/data contacts of the docking stationcoupled to the power data contacts of the barcode reader 1130.

The second power/data interface 428 may be, for example, a USB interface(operating as a USB non-host) for coupling to: i) a power source; or ii)a mating USB port of the host computer (operating as a USB host) via amulti-conductor cable 432 and a connector 430.

The docking station may optionally include a battery 425 to providecharging power to the barcode reader 1130 as well as operating systemswithin the docking station when the docking station itself isbattery-powered and not coupled to a power source by the secondpower/data interface 428.

The wireless interface 416 may be, for example, a Bluetooth® interfacefor communicating with a Bluetooth® of the host computer utilizing anycommunication mode supported by Bluetooth® including a keyboard mode, aUSB mode, and a Serial Port Profile (SPP) mode. Any other wireless localarea network (WLAN) interface may also be used.

In operation, the circuitry 410 may operate in both a command mode and apass through mode. When in a command mode, the processor 420 executingfirmware within the circuitry 410 receives and processes informationsent by the barcode reader 1130, including providing responses torequests from the barcode reader 1130. When in a pass through mode, theprocessor 420 executing firmware within the circuitry 410 passes theinformation (e.g., data frames) received from the barcode reader 1130 tothe host computer by one of the second power/data interface 428 or thewireless interface 416. Passing the information received from thebarcode reader 1130 to the host computer may include converting theinformation from the serial port profile format as received by the firstpower/data interface 412 to the applicable one of: i) a keyboard formatfor wireless transmission to the host computer via the wirelessinterface 416; ii) a serial port profile format for transmission to thehost computer via the wireless interface 416; or iii) a USB format forwired or wireless transmission to the host computer via the secondpower/data interface 428 or the wireless interface 416.

In either the command mode or the pass through mode, the processor 420executing firmware within the circuitry 410 may pass information (e.g.,data frames) received from the host computer to the barcode reader 1130.Passing the information received from the host computer to the barcodereader 1130 may include converting the information from the serial portprofile, keyboard, or USB format as received by the circuitry 410 to theserial port profile format used for transmission to the barcode reader1130 via the first power/data interface 412.

Referring to FIG. 20B in conjunction with FIG. 20A, step 1402 representsthe barcode reader 1130 utilizing a command mode to direct the circuitry410 (e.g., the RF circuit drivers 424 and the wireless interface 416) toenter a discoverable mode. In response thereto, the processor 420executing the applicable firmware places the circuitry 410 (e.g., the RFcircuit drivers 424 and the wireless interface 416) into a discoverablemode.

When in a discoverable mode the host computer 1331 may initiateformation of a secure RF connection (e.g., a Bluetooth pairing) betweenthe RF systems of the host computer 1331 and the circuitry 410 at step1404. The paring may be performed in response to a user of the hostcomputer 1331 selecting the circuitry 410 for pairing. Upon completionof pairing, the processor 420, executing firmware of the circuitry 410may, for example, illuminate an indicator light 411 to signal that asecure wireless communication connection has been established betweenthe circuitry 410 and the host computer 1331. Alternatively, theprocessor 420 may activate generation of other signals, such as audiblesignals or vibrations to signal establishment of the secure wirelesscommunication connection.

Steps 1406 through 1422 represent an authentication process of theexternally powered barcode reader 1130 to the host computer as a trustedaccessory. In general, the authentication of the barcode reader 1130 tothe host computer utilizes the steps described in FIG. 19A with theexception that steps performed by the authentication system 181 withinthe barcode reader 1130 are performed by the authentication system 181within the docking station.

Step 1406 represents the host computer sending a request for anaccessory identifier to the circuitry 410. This request may be sent whena communication link is first established between the circuitry 410 andthe host computer. The processor 420 of the circuitry 410 forwards allcommunications received from the host computer 1331 to the externallypowered barcode reader 1130. Therefore, the request for the accessoryidentifier is forwarded to the barcode reader 1130.

In one embodiment, the accessory identifier may be generated by thebarcode reader 1130 or may be a digital certificate stored within thememory of the barcode reader 1130. Alternatively, in another embodiment,the accessory identifier may be generated by the circuitry 410 or may bea digital certificate stored by the circuitry 410.

Steps 1408 and 1410 are steps utilized when the accessory identifier isgenerated by the circuitry 410 or is a digital certificate stored by thecircuitry 410. More particularly, step 1408 represents the barcodereader 1130 using a command mode to direct the circuitry 410 to provideits accessory identifier to the barcode reader 1130. In responsethereto, the processor 420 of the circuitry 410 executing the applicablefirmware may query the authentication system 181 for an accessoryidentifier. As discussed, the accessory identifier may be generated bythe authentication system 181 and/or may be a digital certificate. Theauthentication system 181 may then return the accessory identifier tothe processor 420. Communication between the processor 420 and theauthentication system 181 (which may be a coprocessor) may be performedby way of I2C communication over an internal bus.

Step 1410 represents the processor 420 of the circuitry 410 returningthe accessory identifier to the barcode reader 1130. Step 1412represents the barcode reader 1130 using a pass through mode to returnthe accessory identifier to the host computer through the circuitry 410.As discussed, in the pass through mode the processor 420 of thecircuitry 410 forwards the communication received from the barcodereader 1130 to the host computer.

After validating the accessory identifier, the host computer may send anauthentication challenge to the circuitry 410 at step 1414. Theauthentication challenge may be a random number encrypted with a publicencryption key of the digital certificate. As discussed, the processor420 of the circuitry 410 passes the authentication challenge receivedfrom the host computer to the barcode reader 1130.

Step 1416 represents the barcode reader 1130 utilizing a command mode toprovide the authentication challenge to the processor 420 of thecircuitry 410 and to direct the processor 420 to return anauthentication response. In response thereto the processor 420 of thecircuitry 410 presents the authentication challenge to theauthentication system 181, obtains an authentication response from theauthentication system 181, and provides the authentication response backto the barcode reader 1130 at step 1418.

After receiving the authentication response from the circuitry 410, thebarcode reader 1130 returns the authentication response to the hostcomputer through the circuitry 410 using a pass through mode at step1420. When the authentication response is sent using a pass throughmode, the processor 420 of the circuitry 410 receiving theauthentication response forwards it to the host computer.

If the barcode reader 1130 has properly authenticated as a trustedaccessory, the host computer may authorize communication with thebarcode reader 1130 at step 1422. Again, the processor 420 of theinterface system passes the authorization to the barcode reader 1130.

After authentication the barcode reader 1130 is capable of communicatingwith the host computer via the circuitry 410 using a pass through mode.After authentication, the ready state may be indicated to a user by thecircuitry 410 or by the barcode reader 1130. The circuitry 410 may senda message to the barcode reader 1130 (via the first power/data interface412 and the connector 430) confirming completion of authentication, andthe barcode reader 1130 may generate a signal (for example illuminationof an indicator light, generation of an audible signal, or activation ofa vibration motor) to notify the user of completion of authenticationand the ready state. Alternatively, the circuitry 410 may generate asignal (for example illumination of an indicator light, generation of anaudible signal, or activation of a vibration motor within a housingportion of the docking station) to notify the user of completion ofauthentication and the ready state.

Step 1424 represents the barcode reader 1130 providing decoded data tothe host computer via the circuitry 410 using a pass through mode. Thebarcode reader 1130 may package the decoded data as a data packet, asdescribed with respect to FIG. 19C. The packaging includes formattingand/or supplementing the decoded data so that it conforms to thespecification ID 1228 and adding a header to the data which includesidentification of the packet as a custom data packet and thespecification ID 1228.

Step 1426 represents the barcode reader 1130 sending control packets tothe host computer via the circuitry 410 using a pass through mode. Step1428 represents the host computer sending custom data packets to thebarcode reader 1130 via the circuitry 410. Step 1430 represents the hostcomputer 1331 sending control packets to the barcode reader 1130 via thecircuitry 410. A control or configuration application operating on thehost computer 1331 may generate configuration control commands for thebarcode reader 1130 and send them to the barcode reader 1130 via thecircuitry 410.

The host computer 1331 packages the control or configuration commands ascustom data packets as previously described. This may include, asdescribed with respect to FIG. 19C, formatting and/or supplementing thecontrol or configuration commands so that they conform to thespecification ID 1228 and adding a header to the data which includesidentification of the packet as a custom data packet and thespecification ID 1228. Even though a configuration or control commandmay be a control command to the barcode reader 1130, it is data forpurposes of the protocol communications between the circuitry 410 andthe host computer.

FIG. 21A depicts a second embodiment of circuitry 410 which may beimplemented in any of the docking stations described above. FIG. 21Adepicts the barcode reader 1130 being coupled to the circuitry 410 ofthe docking station via a connection 406 which may be the connectionbetween the power/data contacts of the barcode reader and the power datacontacts of the docking station.

The circuitry 410 includes a power data interface (barcode interface)412 and a power interface 413. The circuitry 410 may also include aprocessor 420, memory 423, the authentication system 181, and powerinterface circuits 414.

The power/data interface (barcode interface) 412 may provide power andserial communication between the circuitry 410 and the barcode reader1130 through the power/data contacts of the docking station coupled tothe power data contacts of the barcode reader 1130.

The power interface 413 provides power to the power interface 413 forproviding charging power to the barcode reader 1130 as well as operatingsystems within the docking station. The docking station may optionallyinclude battery 425 to provide charging power to the barcode reader 1130as well as operating systems within the docking station when the dockingstation itself is battery-powered and not coupled to a power source bythe power interface 413.

In operation, the processor 420 executing firmware within the circuitry410 receives and processes information sent by the barcode reader 1130,including providing responses to requests from the barcode reader 1130.

Referring to FIG. 21B in conjunction with FIG. 21A, steps 1432 through1448 represent an authentication process of the barcode reader 1130 tothe host computer 1331 as a trusted accessory to facilitatecommunication between the barcode reader 1130 and the host computer 1331utilizing the wireless LAN interface 1142 a or the wirelesspoint-to-point interface 1142 b of the barcode reader 1130.

In general, the authentication of the barcode reader 1130 to the hostcomputer 1331 utilizes the steps described in FIG. 19A with theexception that steps performed by the authentication system 181 withinthe barcode reader 1130 are performed by the authentication system 181within the docking station.

Step 1432 represents the host computer 1331 sending a request for anaccessory identifier to the barcode reader 1130. This request may besent when a communication link is first established between the barcodereader 1130 and the host computer 1331 via wireless LAN or wirelesspoint-to-point communication.

In one embodiment, the accessory identifier may be generated by thebarcode reader 1130 or may be a digital certificate stored within thememory of the barcode reader 1130. Alternatively, in another embodiment,the accessory identifier may be generated by the circuitry 410 or may bea digital certificate stored by the circuitry 410.

Steps 1434 and 1436 are steps utilized when the accessory identifier isgenerated by the circuitry 410 or is a digital certificate stored by thecircuitry 410. More particularly, step 1434 represents the barcodereader 1130 directing the circuitry 410 to provide its accessoryidentifier to the barcode reader 1130. In response thereto, theprocessor 420 of the circuitry 410 executing the applicable firmware mayquery the authentication system 181 for an accessory identifier. Asdiscussed, the accessory identifier may be generated by theauthentication system 181 and/or may be a digital certificate. Theauthentication system 181 may then return the accessory identifier tothe processor 420. Communication between the processor 420 and theauthentication system 181 (which may be a coprocessor) may be performedby way of I2C communication over an internal bus.

Step 1436 represents the processor 420 of the circuitry 410 returningthe accessory identifier to the barcode reader 1130. Step 1438represents the barcode reader 1130 returning the accessory identifier tothe host computer 1331 via its wireless LAN interface or wirelesspoint-to-point interface with the host computer.

After validating the accessory identifier, the host computer 1331 maysend an authentication challenge to barcode reader 1130 at step 1440.The authentication challenge may be a random number encrypted with apublic encryption key of the digital certificate.

Step 1442 represents the barcode reader 1130 providing theauthentication challenge to the processor 420 of the circuitry 410 anddirecting the processor 420 to return an authentication response. Inresponse thereto the processor 420 of the circuitry 410 presents theauthentication challenge to the authentication system 181, obtains anauthentication response from the authentication system 181, and providesthe authentication response back to the barcode reader 1130 at step1444.

After receiving the authentication response from the circuitry 410, thebarcode reader 1130 returns the authentication response to the hostcomputer 1331 via its wireless LAN or wireless point-to-point connectionwith the host computer at step 1446.

If the barcode reader 1130 has properly authenticated as a trustedaccessory, the host computer 1331 may authorize communication with thebarcode reader 1130 at step 1448.

After authentication the barcode reader 1130 is capable of communicatingwith the host computer 1331 via its wireless LAN or wirelesspoint-to-point communication connection with the host computer 1331.After authentication, the ready state may be indicated to a user by thebarcode reader 1130.

Step 1450 represents the barcode reader 1130 providing decoded data tothe host computer 1331. The barcode reader 1130 may package the decodeddata as a custom data packet, as described with respect to FIG. 19C. Thepackaging includes formatting and/or supplementing the decoded data sothat it conforms to the specification ID 1228 and adding a header to thedata which includes identification of the packet as a custom data packetand the specification ID 1228.

Step 1452 represents the barcode reader 1130 sending control packets tothe host computer 1331. Step 1454 represents the host computer 1331sending custom data packets to the barcode reader 1130. Step 1456represents the host computer 1331 sending control packets to the barcodereader 1130. In step 1456, a control or configuration applicationoperating on the host computer 1331 may generate control orconfiguration commands for the barcode reader 1130 and send them to thebarcode reader 1130.

The host computer 1331 may package the control or configuration commandsas custom data packets as previously described. This may include, asdescribed with respect to FIG. 19C, formatting and/or supplementing thecontrol or configuration commands so that they conform to thespecification ID 1228 and adding a header to the data which includesidentification of the packet as a custom data packet and thespecification ID 1228.

FIG. 22A illustrates a barcode reading system 2200. The barcode readingsystem 2200 may include a barcode reader 2202 and a docking station2208. The barcode reader 2202 may include a housing 2204 and a firstmating structure 2206. The docking station 2208 may include a base 2212and a second mating structure 2210. The first mating structure 2206 andthe second mating structure 2210 may be designed to connect togethersuch that the barcode reader 2202 can be mounted on the docking station2208.

The barcode reading system 2200 may include a magnet (which is not shownin FIG. 22A). A magnet may be included in the docking station 2208, thesecond mating structure 2210, or the base 2212. A magnet may create amagnetic field above a threshold level. A magnet included in the barcodereading system 2200 may produce magnetic forces that strengthen acoupling between the barcode reader 2202 and the docking station 2208and/or between the first mating structure 2206 and the second matingstructure 2210.

As used herein, the term “barcode reader” may be any device capable ofreading barcodes. A barcode reader in accordance with the presentdisclosure may be an image-based barcode reader that captures images ofbarcodes and processes the captured images to decode the barcodes. Asanother example, a barcode reader may be a laser-based scanner. In someembodiments, a barcode reader may be a mobile computing device with acamera and barcode reading software. In such embodiments, the mobilecomputing device may include an attachment designed for facilitating orenhancing barcode reading.

For purposes of the present discussion, it will be assumed that thebarcode reader 2202 shown in FIG. 22 is an image-based barcode reader2202 that includes a camera (which is not shown in FIG. 22A). Thebarcode reader 2202 may have one or more user input devices (such aspush buttons or triggers, which are not shown in FIG. 22A) that may beused to initiate capturing an image of a barcode presented in a field ofview of the camera. The barcode reader 2202 may include a display screenthat displays the field of view of the camera and enables a user toinitiate capturing an image of a barcode. A field of view of a cameramay be a part of the world visible to the camera at a particularposition and orientation in space.

The barcode reader 2202 may be capable of detecting motion in the fieldof view of the camera included in the barcode reader 2202. The barcodereader 2202 may be capable of initiating capturing an image of a barcodepresented in the field of view of the camera when the barcode reader2202 detects motion in the field of view of the camera. The barcodereader 2202 may also be capable of continuously attempting to capture animage of a barcode without user action.

The barcode reader 2202 may have one or more illumination sources (whichare not shown in FIG. 22A). Each illumination source may emit a field ofillumination. The field of illumination emitted by an illuminationsource refers to a part of the world illuminated by (or, in other words,a part of the world that receives light from) the illumination source.The barcode reader 2202 may include circuitry that is configured toactivate and deactivate the illumination source(s) in the barcode reader2202. Such circuitry may be configured to activate the illuminationsource(s) only when a background illumination level is below a certainthreshold, only when the barcode reader 2202 attempts to capture animage of a barcode, and/or in response to user action.

The barcode reader 2202 may include a transceiver (which is not shown inFIG. 22A). A transceiver may enable the barcode reader 2202 to send andreceive wireless signals and communications.

The barcode reader 2202 may be capable of operating in one or moreoperational modes. An operational mode may include settings regardingone or more operating parameters of the barcode reader 2202. Anoperational mode may be capable of dynamically changing settings of oneor more operating parameters of a barcode reader while the barcodereader operates in the operational mode.

An operational mode may include settings regarding power consumption. Anoperational mode may include settings such that the barcode reader 2202is in a low-power state and consumes a low amount of power. Low-powersettings may maximize battery life of a barcode reader. For example, thebarcode reader 2202 may be set to an idle mode and attempt to capture animage of a barcode only in response to user action. An operational modemay, in contrast, include settings to maximize performance of thebarcode reader 2202, which may result in shorter battery life. Anoperational mode may include settings such that the barcode reader 2202continuously attempts to capture an image of a barcode.

An operational mode may include settings regarding image capturing. Anoperational mode may include settings such that the barcode reader 2202attempts to capture an image of a barcode whenever the barcode reader2202 detects motion in a field of view of the barcode reader 2202. Anoperational mode may include settings such that the barcode reader 2202continuously attempts to capture an image of a barcode. An operationalmode may include settings such that the barcode reader 2202 attempts tocapture an image of a barcode in response to a user action. Someexamples of a user action include pressing a button or trigger, a voicecommand, entering a passcode, or touching a touchscreen.

An operational mode may also include settings regarding security andfunctionality. An operational mode may require a user to enter apasscode to operate the barcode reader 2202. An operational mode mayrestrict access to barcode images captured by the barcode reader 2202 ormay restrict transmission of barcode images. An operational mode mayenable fewer than all operational functions of the barcode reader 2202.

An operational mode may include settings regarding one or moreillumination sources of the barcode reader 2202. An operational mode mayset one or more illumination sources to continuously emit a field ofillumination or to emit a field of illumination only when the barcodereader 2202 attempts to capture an image of a barcode.

One type of operational mode may include a hand-held mode (which mayalso be referred to as a trigger mode). A hand-held mode may require auser action to initiate capturing an image of a barcode.

Another type of operational mode may include a presentation mode. Apresentation mode may cause the barcode reader 2202 to automaticallycapture a barcode image placed in a field of view of the barcode reader2202 without additional user action. In other words, in a presentationmode, the barcode reader 2202 may not require user input to initiatebarcode reading. A presentation mode may be a mode in which the barcodereader 2202 is always on such that the barcode reader 2202 continuouslyattempts to capture an image of a barcode. A presentation mode may be amode in which the barcode reader 2202 is in a low-power state andattempts to capture an image of a barcode only when the barcode reader2202 detects motion in a field of view of the barcode reader 2202.

The barcode reader 2202 may be capable of changing operational modes,such as changing from a first operational mode to a second operationalmode. The barcode reader 2202 may be capable of switching from a firstoperational mode to a second operational mode in response to an event ora user action. One type of event that may cause the barcode reader 2202to switch from a first operational mode to a second operational mode maybe a docking event. A docking event may include the barcode reader 2202being coupled to the docking station 2208. One type of user action thatmay cause the barcode reader 2202 to switch from a first operationalmode to a second operational mode may be a user pushing a button orchanging the position of a physical switch.

The barcode reader 2202 may include a detector (which is not shown inFIG. 22A). A detector may be capable of detecting an occurrence of oneor more events. The one or more events may include a docking event andan undocking event. A docking event may include the barcode reader 2202coupling to the docking station 2208. An undocking event may include thebarcode reader 2202 de-coupling from the docking station 2208.

A detector may be capable of detecting when the first mating structure2206 contacts another surface or object. The detector may be capable ofdetecting when a surface of the first mating structure 2206 touches asurface of the second mating structure 2210.

A detector may be a magnetic field detector, which may be capable ofdetecting a presence or absence of a magnetic field or detecting whethera magnetic field is at a threshold level. A detector may be a devicecapable of detecting pressure on a first surface, physical force appliedto a first surface, or physical contact between a first surface and asecond surface. A detector may be capable of detecting a presence orabsence of electrical current. A detector may also be capable ofcapacitive sensing.

The barcode reader 2202 may be capable of changing operational modes orsettings based on input from a detector. For example, the barcode reader2202 may change from a first operational mode to a second operationalmode based on input from a detector. The barcode reader 2202 may changefrom a first operational mode to a second operational mode when adetector detects an occurrence of one or more specified events, such asa docking event. A docking event may occur when the first matingstructure 2206 is connected to the second mating structure 2210. Adetector may detect an occurrence of a docking event by detecting that amagnetic field produced by a magnet included in the second matingstructure 2210 is greater than a threshold level. A first operationalmode may be a hand-held mode and a second operational mode may be apresentation mode.

The barcode reader 2202 may, after changing from a first operationalmode to a second operational mode, change from the second operationalmode back to the first operational mode based on input from a detector.The barcode reader 2202 may change from a second operational mode backto a first operational mode when a detector detects that the firstmating structure 2206 is no longer connected to the second matingstructure 2210. The barcode reader 2202 may detect that the first matingstructure 2206 is no longer connected to the second mating structure2210 when the barcode reader 2202 detects that a magnetic field createdby a magnet in the second mating structure 2210 has fallen below athreshold level.

The barcode reader 2202 may be capable of changing operational modes orsettings based on input from a transceiver. The barcode reader 2202 maychange from a first operational mode to a second operational mode basedon a signal received by the transceiver. The barcode reader may changeback to the second operational mode from the first operational modebased on a second signal received by the transceiver.

The barcode reader 2202 may include a switch (not shown in FIG. 22A). Aswitch in the barcode reader 2202 may be triggered when a detectorincluded in the barcode reader 2202 detects an event. A switch in thebarcode reader 2202 may cause the barcode reader 2202 to change from afirst operational mode to a second operational mode when the switch istriggered to change from a first state to a second state and may causethe barcode reader 2202 to switch from the second operational mode tothe first operational mode when the switch is triggered to change fromthe second state to the first state. A switch may be designed to changefrom a first state to a second state when a detector included in thebarcode reader 2202 detects a magnetic field or detects a magnetic fieldabove a threshold level. The switch may be designed to change from thesecond state to the first state when the detector ceases detecting themagnetic field or ceases detecting the magnetic field above thethreshold level. The switch described above may be included in adetector that is included in the barcode reader 2202.

FIG. 22C shows a block diagram of some potential components of barcodereader 2202. As shown in FIG. 22C and as discussed above, the barcodereader 2202 may include a camera 2238, illumination sources 2240 a, 2240b, a detector 2242, a switch 2244, a transceiver 2246, a battery 2248,and an input device 2250.

Returning to FIG. 22A, the housing 2204 may include a top area 2218, afront area 2220, and a first side 2222. The barcode reader 2202 may becapable of capturing images of barcodes in a field of view of the frontarea 2220. The front area 2220 may include a window 2232. The housing2204 may include one or more input devices (not shown) such as atrigger, a button, a microphone, or a touchscreen. A portion of thehousing 2204 may include ferromagnetic material.

The first mating structure 2206 may be connected to the housing 2204 ofthe barcode reader 2202. Alternatively, the first mating structure 2206may be part of the housing 2204 of the barcode reader 2202. The firstmating structure 2206 may extend out from the housing 2204 of thebarcode reader 2202 or it may be inset within the housing 2204 of thebarcode reader 2202.

The first mating structure 2206 may be in electrical communication withthe barcode reader 2202. In designs where the barcode reader 2202includes a detector, the first mating structure 2206 may be inelectrical communication with the detector.

The first mating structure 2206 may include a detector (which is notshown in FIG. 22A). A detector included in the first mating structure2206 may have properties such as those described above with respect to adetector that may be included in the barcode reader 2202.

The first mating structure 2206 may include one or more surfaces. Thefirst mating structure 2206 may include a metallic surface (which is notshown in FIG. 22A). The first mating structure 2206 may includeferromagnetic material.

The docking station 2208 may be designed to attach to or be attached toa surface or an object. The docking station 2208 may be designed to reston a surface or an object. The docking station 2208 may be designed tohave the barcode reader 2202 mounted on the docking station 2208.

The docking station 2208 may include a transceiver (which is not shownin FIG. 22A). A transceiver included in the docking station 2208 mayhave properties such as those described above with respect to atransceiver that may be included in the barcode reader 2202.

The docking station 2208 may include a detector (which is not shown inFIG. 22A). A detector included in the docking station 2208 may haveproperties such as those described above with respect to a detector thatmay be included in the barcode reader 2202. The docking station 2208 maybe capable of sending a signal through a transceiver to the barcodereader 2202 based on input from a detector included in the dockingstation 2208. The signal may cause the barcode reader 2202 to enter aparticular operational mode. For example, the docking station 2208 maysend a signal to the barcode reader 2202 when a detector in the dockingstation 2208 detects occurrence of an event. An event may include thefirst mating structure 2206 being connected or coupled to the secondmating structure 2210. The signal from the docking station 2208 maycause the barcode reader 2301 to enter a presentation mode.

The base 2212 of the docking station 2208 may include an attachment end2226. The attachment end 2226 may be designed to attach to a surface oran object or be affixed to a surface or an object. The attachment end2226 may be capable of attaching to generally vertical surfaces or togenerally horizontal surfaces. The attachment end 2226 may be designedto rest on a surface or an object. The attachment end 2226 may bedesigned so that the docking station 2208 remains stable when thebarcode reader 2202 is connected to the docking station 2208.

The second mating structure 2210 may be connected to the base 2212. Thesecond mating structure 2210 may be connected to the base 2212 such thatthe second mating structure 2210 is in a fixed position. The secondmating structure 2210 may also be connected to the base 2212 such thatthe second mating structure 2210 can be moved in relation to the base2212. The second mating structure 2210 may also be connected to the base2212 such that the second mating structure 2210 can be moved to one ormore fixed positions in relation to the base 2212. The second matingstructure 2210 may extend out from the base 2212 or it may be insetwithin the base 2212. The second mating structure 2210 may be part ofthe base 2212.

A magnet (not shown in FIG. 22A) may be included in the second matingstructure 2210. A magnet may create a magnetic field above a thresholdlevel.

In FIG. 22A, the first mating structure 2206 is included in the barcodereader 2202 and the second mating structure 2210 is included in thedocking station 2208. In other designs, a second mating structure may beincluded in a barcode reader and a first mating structure may beincluded in a docking station.

In FIG. 22A, the barcode reader 2202 and the docking station 2208 eachinclude one mating structure. In other designs, the barcode reader 2202and the docking station 2208 may include two or more mating structures.

FIG. 22B illustrates the barcode reading system 2200. In FIG. 22B, thebase 2212 has a second orientation in relation to the second matingstructure 2210 different from a first orientation of the base 2212 inFIG. 22A.

FIG. 23A illustrates a portion of a barcode reader 2301 that includes afirst mating structure 2305 and a housing 2303.

The housing 2303 of the barcode reader 2301 may have a front area 2320and a bottom side 2324. The first mating structure 2305 may be connectedto the bottom side 2324 of the housing 2303.

The first mating structure 2305 may include a cavity 2316. The secondmating structure 2310 may include a protrusion 2314. In other designs, afirst mating structure may include a protrusion and a second matingstructure may include a cavity. The protrusion 2314 and the cavity 2316may be designed such that the protrusion 2314 fits within the cavity2316.

FIG. 23B illustrates a portion of the barcode reader 2301 that includesthe first mating structure 2305 and the housing 2303. FIG. 23Billustrates the protrusion 2314 of the second mating structure 2310inserted into the first mating structure 2305.

The first mating structure 2305 may include a metallic surface (notshown in FIG. 23A or 23B). The second mating structure 2310 may includea magnet (which is not shown in FIG. 23A or 23B). A magnet included inthe second mating structure 2310 may produce magnetic forces above athreshold level. A magnet may produce magnetic forces when the magnet isbrought within a vicinity of a metallic surface of the first matingstructure 2305.

The barcode reader 2301 may include a detector (which is not shown inFIG. 23A or 23B). A detector may be capable of detecting a magneticfield or detecting whether a magnetic field is above a threshold level.The barcode reader 2301 may enter a particular operational mode when thedetector detects a magnetic field or detects a magnetic field above athreshold level. For example, when the second mating structure 2310 isinserted into the first mating structure 2305, as shown in FIG. 23B, adetector may detect a magnetic field created by a magnet included in thesecond mating structure 2310 and may then cause the barcode reader 2301to enter a presentation mode.

FIG. 24A illustrates a portion of a barcode reader 2401 that includes afirst mating structure 2406 and a housing 2404. In this example, thefirst mating structure 2406 is attached to a first side 2422 of thehousing 2404. FIG. 24A also illustrates a second mating structure 2410that is not connected to the first mating structure 2406. The firstmating structure 2406 is formed as part of the housing 2404. The firstmating structure 2406 includes a cavity 2415. The second matingstructure 2410 includes a protrusion 2414.

FIG. 24B illustrates the second mating structure 2410 at least partiallyinserted into the first mating structure 2406. In this example, theprotrusion 2414 of the second mating structure 2410 fits into the cavity2515 of the first mating structure 2406.

The first mating structure 2406 may include a metallic surface (which isnot shown in FIG. 24B). The second mating structure 2410 may include amagnet (which is not shown in FIG. 24B). The barcode reader 2401 mayinclude a detector (which is not shown in FIG. 24B) capable of detectinga magnetic field. The detector may cause the barcode reader 2401 toenter a particular operational mode when the detector detects a magneticfield above a threshold level. When the second mating structure 2410 isinserted into the first mating structure 2406, the detector may detect amagnetic field created by a magnet included in the second matingstructure 2410 and cause the barcode reader 2401 to enter a presentationmode.

FIG. 25A illustrates a docking station 2508 that includes a base 2511and a second mating structure 2509. The second mating structure 2509 isconnected to the base 2511. The base 2511 may be resting on or beattached to a horizontal surface.

The second mating structure 2509 may include a protrusion 2513. In FIG.25A, the protrusion 2513 is oriented at an approximately 45° anglerelative to a horizontal surface on which the base 2511 is resting. Thesecond mating structure 2509 may be capable of being oriented at adifferent angle. The second mating structure 2509 may be capable ofmoving to different positions relative to the base 2511. In thealternative, the second mating structure 2509 may be designed to be in afixed position relative to the base 2511. In some designs, the secondmating structure 2509 may be capable of disconnecting from the base2511, as shown in FIG. 25B. In other designs, a second mating structuremay be permanently connected to a base or, similarly, a second matingstructure and a base may form a single unit.

The second mating structure 2509 may include a magnet 2534. The magnet2534 may create a magnetic field above a threshold level.

FIG. 26A illustrates one example of a coupler 2628. The coupler 2628 mayinclude a first mating structure 2606 and a second mating structure2609. The first mating structure 2606 and the second mating structure2609 may be designed to connect to each other.

In FIG. 26A, the coupler 2628 consists of two mating structures, thefirst mating structure 2606 and the second mating structure 2609. Inother designs, a coupler may include more than two mating structures.For example, a coupler may include three mating structures where two ofthe mating structures both connect to a third mating structure. Inanother example, a coupler may include four mating structures. The fourmating structures may include a first pair of mating structures,including a first barcode reader mating structure and a first dockingstation mating structure, and a second pair of mating structures,including a second barcode reader mating structure and a second dockingstation mating structure. The four mating structures may be designedsuch that the first barcode reader mating structure and the firstdocking station mating structure connect to each other and the secondbarcode reader mating structure and the second docking station matingstructure connect to each other. In such a configuration, the firstbarcode reader mating structure may be capable of connecting to only thefirst docking station mating structure or may also be capable ofconnecting to the second docking station mating structure. Similarly,the second barcode reader mating structure may be capable of connectingto only the second docking station mating structure or may also becapable of connecting to the first docking station mating structure.

One way the first mating structure 2606 and the second mating structure2609 may be designed to connect to each other is for the first matingstructure 2606 to include a cavity 2616 and the second mating structure2609 to include a protrusion 2613. The protrusion 2613 of the secondmating structure 2609 and the cavity 2616 of the first mating structure2606 may be designed such that the protrusion 2613 fits into the cavity2616.

The cavity 2616 may have internal edges that remain equidistant fromeach other such that the cavity 2616 has a top opening that is a samesize as a bottom area of the cavity 2616 (the bottom area may be open ormay be a surface). In other designs, a cavity may have internal edgesthat trend toward each other such that the cavity has a top opening thatis a different size from a bottom area of the cavity.

Similarly, the protrusion 2613 may have straight outside edges such thatthe protrusion 2613 has a top area, which may be an open area or asurface, that is a same size as a bottom area of the protrusion 2613. Inother designs, a protrusion may have tapered edges such that theprotrusion has a top area that is a different size from a bottom area ofthe protrusion.

As shown in FIG. 26A, an outer edge of the protrusion 2613 may have ashape identical to a shape of an internal edge of the cavity 2616. InFIG. 26A, the protrusion 2613 and the cavity 2616 have a multi-prongstar outline. In other designs, a protrusion and a cavity may have anoutline of other polygons or an outline of a circle. In other designs, aprotrusion and a cavity may fit together but have non-identicaloutlines. The protrusion 2613 and the cavity 2616 may be designed sothat when the protrusion 2613 enters the cavity 2616, the second matingstructure 2609 cannot turn in a radial direction.

Although in FIG. 26A the first mating structure 2606 includes the cavity2616 and the second mating structure 2609 includes the protrusion 2613,in other designs a first mating structure may include a protrusion, anda second mating structure may include a cavity.

Furthermore, in other designs, a first mating structure and a secondmating structure may not include a cavity or a protrusion. For example,a second mating structure and a first mating structure may both be solidstructures. To facilitate coupling a second mating structure may have amagnetic face and a first mating structure may have a ferromagnetic facesuch that a magnetic force couples the second mating structure to thefirst mating structure. In other designs, a first mating structure and asecond mating structure may use clasps, buckles, clamps, hooks, buttons,fasteners, or other means or devices to connect or couple together.

As shown in FIG. 26A, the second mating structure 2609 includes a singleprotrusion, the protrusion 2613, and the first mating structure 2606includes a single cavity, the cavity 2616. In other examples, a secondmating structure may include two or more protrusions, and a first matingstructure may include two or more cavities. A second mating structuremay include two or more protrusions designed to fit into two or morecavities included in a first mating structure.

The first mating structure 2606 may include a metallic surface 2636. Theprotrusion 2613 of the second mating structure 2609 may include a magnet2634. The magnet 2634 may produce magnetic forces and produce a magneticfield above a threshold level. The magnet 2634 may produce magneticforces when the magnet 2634 is near the metallic surface 2636. Themagnetic forces may strengthen a coupling between the first matingstructure 2606 and the second mating structure 2609. In other designs, afirst mating structure may include a magnet, and a second matingstructure may include a metallic surface.

FIG. 26B illustrates the first mating structure 2606 connected to thesecond mating structure 2609. In this example, the protrusion 2613 ofthe second mating structure 2609 fits into the cavity 2616 of the firstmating structure 2606. The magnet 2634 (not shown in FIG. 26B) may holdthe second mating structure 2609 against the metallic surface 2636 (notshown in FIG. 26B) of the first mating structure 2606.

FIG. 26C shows the metallic surface 2636 of the first mating structure2606 at a bottom end of the cavity 2616.

FIG. 27 illustrates a first mating structure 2706 and a second matingstructure 2709. The first mating structure 2706 does not include aseparate protrusion. Instead, the first mating structure 2706 isdesigned to fit into a cavity 2716 of the second mating structure 2709.

The first mating structure 2706 may include a magnet 2734. The secondmating structure 2709 may include a metallic surface 2736. The magnet2734 may produce magnetic forces when the magnet 2734 is near themetallic surface 2736. The magnetic forces may strengthen a couplingbetween the first mating structure 2706 and the second mating structure2709.

FIG. 28 illustrates an example of a method 2800 for changing anoperational mode of a barcode reader. In step 2802, a barcode readerenters a first operational mode. A first operational mode may include ahand-held mode. A first operational mode may be a mode in which abarcode reader starts in hand-held mode and then enters a sleep modeafter a certain period of inactivity. A first operational mode may alsobe a mode that requires a passcode or password to enable barcodereading.

A hand-held mode may be any mode of operation where a barcode readerdoes not attempt to capture an image of a barcode placed in a field ofview of the barcode reader without a specified user action. A variety ofuser actions may be specified to cause a barcode reader in hand-heldmode to attempt to capture an image of a barcode. For example, a barcodereader in a hand-held mode may require that a user depress a trigger,push a button, tap an icon on a touch screen, or speak a voice commandbefore attempting to capture an image of a barcode.

In step 2804, a barcode reader detects a docking event. A docking eventmay include a first mating structure of a barcode reader connecting to asecond mating structure of a docking station.

A barcode reader may detect that a first mating structure of the barcodereader is connected to a second mating structure of a docking station bydetecting a magnetic field created by a magnet in the second matingstructure. A barcode reader may detect that a first mating structure ofthe barcode reader is connected to a second mating structure of adocking station by detecting that a face of the first mating structureis in contact with a face of the second mating structure.

A barcode reader may detect that a first mating structure of the barcodereader is connected to a second mating structure of a docking station byreceiving a signal from a docking station. A docking station may send asignal to a barcode reader when the docking station detects a firstmating structure of the barcode reader is connected to a second matingstructure of the docking station. A docking station may detect that afirst mating structure of the barcode reader is connected to a secondmating structure of a docking station by detecting that a face of thefirst mating structure is in contact with a face of the second matingstructure.

In step 2806, a barcode reader enters a second operational mode. Asecond operational mode may be an operational mode different from afirst operational mode. A second operational mode may include apresentation mode. A presentation mode may be any mode of operationwhere a barcode reader automatically attempts to capture an image of abarcode placed in a field of view of the barcode reader without any useraction. A presentation mode may be where a barcode reader continuouslyattempts to capture an image of a barcode. A presentation mode may bewhere a barcode reader is in a low power or idle state and automaticallyattempts to capture an image of a barcode when the barcode readerdetects motion in a field of view of the barcode reader.

In step 2808, a barcode reader detects an undocking event. An undockingevent may include a first mating structure of a barcode readerdisconnecting from a second mating structure of a docking station.

A barcode reader may detect that a first mating structure of the barcodereader is disconnected from a second mating structure of a dockingstation by detecting that a magnetic field has dropped below a thresholdlevel. A barcode reader may detect that a first mating structure of thebarcode reader is disconnected from a second mating structure of adocking station by detecting that a face of the first mating structureis not in contact with a face of the second mating structure.

A barcode reader may detect that a first mating structure of the barcodereader is disconnected from a second mating structure of a dockingstation by receiving a signal from the docking station. A dockingstation may send a signal to a barcode reader when the docking stationdetects a first mating structure is disconnected from a second matingstructure. A docking station may detect that a first mating structure ofa barcode reader is disconnected from a second mating structure of thedocking station by detecting that a face of the first mating structureis not in contact with a face of the second mating structure.

In step 2810, a barcode reader may return to the first operational modeas a result of detecting an undocking event.

The steps, operations, and/or actions of the methods described hereinmay be interchanged with one another without departing from the scope ofthe claims. In other words, unless a specific order of steps,operations, and/or actions is required for proper functioning of themethod that is being described, the order and/or use of specific steps,operations, and/or actions may be modified without departing from thescope of the claims.

The term “determining” (and grammatical variants thereof) encompasses awide variety of actions and, therefore, “determining” can includecalculating, computing, processing, deriving, investigating, looking up(e.g., looking up in a table, a database or another data structure),ascertaining and the like. Also, “determining” can include receiving(e.g., receiving information), accessing (e.g., accessing data in amemory) and the like. Also, “determining” can include resolving,selecting, choosing, establishing and the like.

The terms “comprising,” “including,” and “having” are intended to beinclusive and mean that there may be additional elements other than thelisted elements. Additionally, it should be understood that referencesto “one embodiment” or “an embodiment” of the present disclosure are notintended to be interpreted as excluding the existence of additionalembodiments that also incorporate the recited features. For example, anyelement or feature described in relation to an embodiment herein may becombinable with any element or feature of any other embodiment describedherein, where compatible.

The present disclosure may be embodied in other specific forms withoutdeparting from its spirit or characteristics. The described embodimentsare to be considered as illustrative and not restrictive. The scope ofthe disclosure is, therefore, indicated by the appended claims ratherthan by the foregoing description. Changes that come within the meaningand range of equivalency of the claims are to be embraced within theirscope.

What is claimed is:
 1. A barcode reader system, comprising: a barcodereader comprising a housing and a first mating structure connected tothe housing, wherein the first mating structure comprises a cavity; adocking station comprising a second mating structure, wherein the secondmating structure comprises a protrusion, and wherein the second matingstructure is configured to mate with the first mating structure to forma coupling between the barcode reader and the docking station; and amagnet configured to produce magnetic forces that strengthen thecoupling between the barcode reader and the docking station.
 2. Thebarcode reader system of claim 1, wherein: the docking station comprisesthe magnet; the first mating structure comprises metal; and the magneticforces are produced when the magnet is brought within a vicinity of themetal of the first mating structure.
 3. The barcode reader system ofclaim 1, wherein the second mating structure comprises the magnet. 4.The barcode reader system of claim 1, wherein the coupling between thebarcode reader and the docking station does not permit rotation of thebarcode reader relative to the docking station.
 5. The barcode readersystem of claim 1, wherein the first mating structure and the secondmating structure are at least one of star shaped or polygon shaped. 6.The barcode reader system of claim 1, wherein: the barcode readerfurther comprises a magnetic field detector; and the barcode reader isconfigured to enable a presentation mode in response to a magnetic fieldbeing detected by the magnetic field detector.
 7. A barcode reader,comprising: a housing; a first mating structure connected to thehousing, wherein the first mating structure is configured to mate with asecond mating structure that is part of a docking station to form acoupling between the barcode reader and the docking station; and atleast one of a metallic surface on the first mating structure or amagnet within the housing, the metallic surface or the magnet beingconfigured to facilitate magnetic forces that strengthen the couplingbetween the barcode reader and the docking station.
 8. The barcodereader of claim 7, wherein: the first mating structure comprises aprotrusion; and the second mating structure comprises a cavity.
 9. Thebarcode reader of claim 7, wherein: the first mating structure comprisesa cavity; and the second mating structure comprises a protrusion. 10.The barcode reader of claim 7, wherein: the first mating structurecomprises the metallic surface; the docking station comprises themagnet; and the magnetic forces are produced when the magnet is broughtwithin a vicinity of the metallic surface of the first mating structure.11. The barcode reader system of claim 7, wherein the second matingstructure comprises the magnet.
 12. The barcode reader of claim 7,wherein at least a portion of the first mating structure and at least aportion of the second mating structure are at least one of star shapedor polygon shaped.
 13. A docking station for a barcode reader, thebarcode reader comprising a housing and a first mating structureconnected to the housing, the docking station comprising: a base; asecond mating structure connected to the base, wherein the second matingstructure is configured to mate with the first mating structure to forma coupling between the barcode reader and the docking station; and atleast one of a magnet or a metallic surface on the second matingstructure, the magnet or the metallic surface being configured tofacilitate magnetic forces that strengthen the coupling between thebarcode reader and the docking station.
 14. The docking station of claim13, wherein: the first mating structure comprises a protrusion; and thesecond mating structure comprises a cavity.
 15. The docking station ofclaim 13, wherein: the first mating structure comprises a cavity; andthe second mating structure comprises a protrusion.
 16. The dockingstation of claim 13, wherein: the docking station comprises the magnet;the first mating structure comprises a metallic surface; and themagnetic forces are produced when the magnet is brought within avicinity of the metallic surface of the first mating structure.
 17. Thedocking station of claim 13, wherein the second mating structurecomprises the magnet.
 18. The docking station of claim 13, wherein thefirst mating structure and the second mating structure are at least oneof star shaped or polygon shaped.